From e461df7573c2b7b7e26c965d8cf2d8e175d67378 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Mon, 16 Dec 2019 21:31:18 +0700 Subject: [usth/MATH2.2] Numerical Methods The future starts now. --- usth/MATH2.2/final/EX1.m | 36 ++++++++++++++++++++++++++++++++++++ usth/MATH2.2/final/EX2.m | 38 ++++++++++++++++++++++++++++++++++++++ usth/MATH2.2/final/EX3.m | 16 ++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 usth/MATH2.2/final/EX1.m create mode 100644 usth/MATH2.2/final/EX2.m create mode 100644 usth/MATH2.2/final/EX3.m (limited to 'usth/MATH2.2/final') diff --git a/usth/MATH2.2/final/EX1.m b/usth/MATH2.2/final/EX1.m new file mode 100644 index 0000000..354aa2f --- /dev/null +++ b/usth/MATH2.2/final/EX1.m @@ -0,0 +1,36 @@ +disp ("Question 1:"); +disp ("(a)"); +printf ("11^3 + 12^3 - 7^3 = %d\n", 11^3 + 12^3 - 7^3); +printf ("15! = %d\n", factorial (15)); + +disp ("(b)"); +A = [1 2 3 + 4 5 6 + 7 8 9]; +B = eye (3); + +disp ("(b.i)"); +disp ("A + B = "); +disp (A + B); + +disp ("(b.ii)"); +disp ("A' = "); +disp (A'); + +disp ("(b.iii)"); +disp ("A^-1 = "); +disp (inv (A)); + +disp ("(c.i)"); +printf ("x^2 = 19 -> x = %g\n", sqrt (19)); +disp ("(c.ii)"); +printf ("x^4 = 55 -> x = %g\n", sqrt (sqrt (19))); + +disp ("(d)"); +X = 0 : 30; +Y = X * 2 + 3; +plot (X, Y); +xlabel ("x"); +ylabel ("y = 2x + 3"); +disp ("Press any key to continue..."); +kbhit; diff --git a/usth/MATH2.2/final/EX2.m b/usth/MATH2.2/final/EX2.m new file mode 100644 index 0000000..9b8c95e --- /dev/null +++ b/usth/MATH2.2/final/EX2.m @@ -0,0 +1,38 @@ +disp ("Question 2:"); +disp ("(a)"); +pkg load symbolic; +syms x real; +solve (sqrt (x) - x + 1 == 0) +% ans = (sym) +% √5 3 +% ── + ─ +% 2 2 +pkg unload symbolic; +disp ("To get numerical solutions we can use fzero"); +disp ("With the initial guess of 0, fzero (@(x) sqrt (x) - x + 1, 0) returns"); +fzero (@(x) sqrt (x) - x + 1, 0) + +disp ("(b)"); +hold on; +ezplot (@(x) exp (-x)); +ezplot (@(x) sin (x)); +hold off; +disp ("Press any key to continue..."); +kbhit; + +disp ("(c)"); +s = 0; +for k = 1 : 1000 + s += k^3; +endfor +printf ("The cubic sum of integers from 1 to 1000 is %d\n", s); + +disp ("(d)"); +A = [2 1 4 + 1 2 -5 + 3 -2 4]; +b = [10 1 8]'; +disp ("Using mldivide, [x y z] = "); +disp (mldivide (A, b)'); +disp ("Using inv, [x y z] = "); +disp ((inv (A) * b)'); diff --git a/usth/MATH2.2/final/EX3.m b/usth/MATH2.2/final/EX3.m new file mode 100644 index 0000000..99240f8 --- /dev/null +++ b/usth/MATH2.2/final/EX3.m @@ -0,0 +1,16 @@ +disp ("Question 3:"); +disp ("(a)"); +function y = f (x) + y = 2 + x.^2 + exp(x.*2 + 1); +endfunction +h = 0.005; +printf ("By forward difference with h = 0.05, f'(1.35) = %g\n", + (f (1.35 + h) - f (1.35)) / h); + +disp ("(b)"); +disp ("I am unsure if diff is different on Matlab, but on octave,"); +disp ("it's simply taking differences between consecutive elements."); +x = [1.35, 1.35+h]; +printf ("Using diff with h = 0.05, we get same result, f'(1.35) = %g\n", + (diff (f (x)) / h)); +disp ("Using symbolical methods, f'(1.35) = 83.5946 which is quite close."); -- cgit 1.4.1