Newton Method using Matlab Code

31 Ansichten (letzte 30 Tage)
Rohit Sil
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?

Akzeptierte Antwort

Matt J
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
Rohit Sil
Rohit Sil am 31 Jan. 2019
@Matt, one more question
if i want to enter a function like the one below.
f(x) = x.^5 − 14x.^4 + x.^2 − 3x + 5
how would that be done? also through function handles?
I tried it as it is and got a message saying that x is undefined...
Jan
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Oguz ODABAS
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
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

Melden Sie sich an, um zu kommentieren.

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!

Translated by