why my iteration prog doesn't work ?
Ältere Kommentare anzeigen
% Use NR method f(x)= x^3-5x^2+7x-3
clc
TV=3;
x=(4);
tol=0.0007;
format long
for i=1:5;
fx=(x(i))^3-5*(x(i))^2+7*(x(i))-3;
fxx=3*(x(i))^2-10*(x(i))+7;
x(i+1)=(x(i))-(fx/fxx);
E_T(i)=(abs((TV-x(i+1))/TV))*100;
end
for i=1:5;
e(i)=(x(6))-(x(i));
fx=(x(i))^3-5*(x(i))^2+7*(x(i))-3;
fxx=3*(x(i))^2-10*(x(i))+7;
fxxx=6*(x(i))-10;
e(i+1)=(-fxxx/2*fxx)*(e(i))^2;
end
if abs(TV-(x(i+1)))<tol
disp(' enough to here')
disp(' -----------')
disp(' x(i+1) ')
disp(' -----------')
x;
disp(' -----------')
disp(' T.V ')
disp(' -----------')
E_T;
disp(' -----------')
disp(' E(i+1) ')
disp(' -----------')
e;
disp(' ------------- ')
end
%-----------------------------------------------------------
7 Kommentare
John D'Errico
am 23 Jan. 2017
Bearbeitet: John D'Errico
am 23 Jan. 2017
Sure it works. It does exactly what it does. Of course, we don't know what you want it to do, since you don't tell us.
If we could actually read it, we might be more willing to help you. So why not learn to format your code as code?
Edit the question. Select the block of text that is code, then click on the "{} Code" button above the edit window. Your code will now be readable as code.
Then tell us what the code does wrong. Do you get an error? Does it just return the wrong thing? What do you expect it to do?
If you want help from people, then why not make it possible for people to give you help?
KSSV
am 23 Jan. 2017
What is that not working here?
khalid boureeny
am 23 Jan. 2017
Bearbeitet: Walter Roberson
am 23 Jan. 2017
khalid boureeny
am 23 Jan. 2017
Walter Roberson
am 23 Jan. 2017
That is an efficiency warning; it is telling you that your code could possibly be made faster. It is not an error message. You could get rid of it by starting out with
E_T = zeros(1,5);
khalid boureeny
am 25 Jan. 2017
Bearbeitet: Walter Roberson
am 25 Jan. 2017
Walter Roberson
am 25 Jan. 2017
If you need 50 or 80 digits you will need to switch to the Symbolic Toolbox, and display using vpa()
NumDig = 50;
x = sym(-0.1);
y = sym(0);
fprintf(' i x \n')
fprintf(' --- ------------- \n')
for i=1:5;
fx=(x(i))^3-(x(i))^2+2;
fxx=3*(x(i))^2-2*(x(i));
y(i)=x(i)-(fx/fxx);
fy=(y(i))^3-(y(i))^2+2;
fyy=3*(y(i))^2-2*(y(i));
x(i+1)=x(i)+([fy-fx]/fyy);
end
for i=1:length(x)
fprintf('%2i %s\n', i, char(vpa(x(i),NumDig)))
end
Akzeptierte Antwort
Weitere Antworten (1)
Lateef Adewale Kareem
am 23 Jan. 2017
0 Stimmen
increase your number of iteration, you will meet the tolerance target
1 Kommentar
khalid boureeny
am 23 Jan. 2017
Kategorien
Mehr zu Special Values finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!