I get the following error in Newton Ralphson code?Can any one predict the mistake?If i use RETURN instead of break at last(21 line),then error "Not enough input arguments" appears as shown in image.
1 次查看(过去 30 天)
显示 更早的评论
f
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/164472/image.png)
function [x,iter]=newton(x0,f,fp)
% newton-raphson algorithm
N = 100; eps = 1.e-5; % define max. no. iterations and error
maxval = 10000.0; % define value for divergence
xx = x0;
while (N>0)
xn = xx-f(xx)/fp(xx);
if abs(f(xn))<eps
x=xn;iter=100-N;
return;
end;
if abs(f(xx))>maxval
disp(['iterations = ',num2str(iter)]);
error('Solution diverges');
break;
end;
N = N - 1;
xx = xn;
end;
error('No convergence');
break;
% end function
0 个评论
回答(1 个)
Walter Roberson
2016-5-17
编辑:Walter Roberson
2016-5-17
You cannot just run that code by giving its name newton . You need to supply the three parameters. For example,
newton(12.345, @(x) sin(x) + 3/4, @(x) cos(x))
3 个评论
Walter Roberson
2016-5-18
You would not rewrite the code: you would give a command at the command line like I show.
You could write a second .m file that contained those commands, if you wanted.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!