Finding roots using Newton's method in MATLAB

  • Thread starter Triathlete
  • Start date
  • #1
33
0

Homework Statement


I am supposed to find the roots of the equation: 10esinx = x2 - 5x +4 in MATLAB using Newton's method with a tolerance of 10-8. There should be three roots.

Homework Equations



p=po - f(po)/f'(po)

|p - po| < TOL

The Attempt at a Solution



Here is what I have for the code so far:

Matlab:
N=100;
x=zeros(N+1,1);
f=x.^2-(5*x)+4-(10*exp(sin(x)));
fprime= diff(sym(f));
TOL=1E-7;
p0=1;
I=1;
x(1)=p0;
while (I<=N+1)
    fp=f(x(I-1));
    fprimep=fprime(x(I-1));
    x(I)=x(I-1)-fp/fprimep;
    if (abs(x(I)-x(I-1))<=TOL)
        Ifinal=I;
        break;
    end
    I=I+1;
    x(I-1)=x(I);
end

I just keep getting so many errors. MATLAB won't even accept the function itself(but it doesn't specify what the problem is). Any help would be appreciated, as this is the first time I've ever used this program and have no idea what I'm doing. :frown:
 
Last edited by a moderator:

Answers and Replies

  • #2
13,110
6,993
What are the error you're getting? Often they will hint what is wrong.
 

Related Threads on Finding roots using Newton's method in MATLAB

Replies
2
Views
7K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
6
Views
30K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
0
Views
4K
  • Last Post
Replies
1
Views
5K
Replies
0
Views
13K
  • Last Post
Replies
8
Views
2K
  • Last Post
Replies
4
Views
1K
Top