In: Advanced Math
Starting from mynewton write a function program mysymnewton that takes as its input a symbolic function f and the ordinary variables x0 and n. Let the program take the symbolic derivative f ′ , and then use subs to proceed with Newton’s method. Test it on f(x) = x 3 − 4 starting with x0 = 2. Turn in the program and a brief summary of the results
code for matlab is syms x f=@(x) x^3-4; f'=diff(f(x)) h=@(y) subs(f',y)
code for mathematica
f[x_]:=x^3-4
F'[X] (*THEN PRESS SHIFT AND ENTER*)
(TO GET THE VALUE FOR XO=2)
F'[2] (*THEN PRESS SHIFT AND ENTER*)
AND SAVE PROGRAME aS mysymnewton
function [ x, ex ] = newton( f, df, x0, tol, nmax ) % % NEWTON Newton's Method % Newton's method for finding successively better approximations to the % zeroes of a real-valued function. % % Input: % f - input funtion % df - derived input function % x0 - inicial aproximation % tol - tolerance % nmax - maximum number of iterations % % Output: % x - aproximation to root % ex - error estimate % % Example: % [ x, ex ] = newton( 'x^3-4', 0, 0.5*10^-5, 10 ) % if nargin == 3 tol = 1e-4; nmax = 1e1; elseif nargin == 4 nmax = 1e1; elseif nargin ~= 5 error('newton: invalid input parameters'); end f = inline(f); df = inline(df); x(1) = x0 - (f(x0)/df(x0)); ex(1) = abs(x(1)-x0); k = 2; while (ex(k-1) >= tol) && (k <= nmax) x(k) = x(k-1) - (f(x(k-1))/df(x(k-1))); ex(k) = abs(x(k)-x(k-1)); k = k+1; end end