Newton Method using Matlab Code
31 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rohit Sil
am 30 Jan. 2019
Kommentiert: Oguz ODABAS
am 14 Sep. 2020
Hey guys so i attempted to program the newton iteration
f is the function, f_prime the derivative, x_0 is the start value, epsilon is the stop criteria
I tried this with newton(sin(i),cos(i),x_0,10.^(-6)) but got the error message:
Index exceeds matrix dimensions.
Error in newton (line 4)
while abs(f(nullstelle(i))<epsilon);
Matlab Code:
function [x] = newton(f,f_prime,x_0,epsilon)
x(1) = x_0;
i = 1;
while abs(f(x(i))<epsilon);
x(i+1) = x(i) - f(x(i))/f_prime(x(i))
i = i + 1;
end
2 Questions - firstly does the code make sense. Secondly if i want to run the function, does my command make sense?
0 Kommentare
Akzeptierte Antwort
Matt J
am 30 Jan. 2019
Bearbeitet: Matt J
am 30 Jan. 2019
You need to pass function handles to the objective and its derivative,
newton(@sin,@cos,x_0,10.^(-6))
and the while loop continuation criterion should look like
while abs(f(x(i)) > epsilon
end
3 Kommentare
Jan
am 31 Jan. 2019
@Rohit: Exactly, you need function handles again:
f = @(x) x.^5 - 14 * x.^4 + x.^2 - 3 * x + 5;
and equivalently for the derivative.
Weitere Antworten (1)
Oguz ODABAS
am 14 Sep. 2020
f = inline (x^4 + 2*x^3-23*x^2+12*x+36);
fd = inline (4*x^3 + 6*x^2 - 46*x + 12);
x = -10:0.01:10;
y = f(x);
x0 = -10;
while abs (f(x0))> 1.0e-6;
x1 = x0 - (f(x0)/fd(x0));
x0 = x1;
end
1 Kommentar
Oguz ODABAS
am 14 Sep. 2020
error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise p
ower.
error: called from
Octave13 at line 1 column 3
Siehe auch
Kategorien
Mehr zu Function Creation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!