matlab编程问题,急盼哪位帮帮忙
function =secant(func,x0,x1,tol,n,xin)%The secant method for solving the nonlinear equation f(x)=0
iter=0;
u=feval(func,x0,xin);
v=feval(func,x1,xin);
err=abs(x1-x0);
%disp('___________________________________________________________')
%disp('iter xn f(xn) f(xn+1)-f(xn)|xn+1-xn|')
%disp('___________________________________________________________')
%fprintf('%4.0d %12.6d %12.6d\n',iter,x0,u)
%fprintf('%4.0d %12.6d %12.6d %12.6f\n',iter,x1,v,v-u,err)
while(err>tol)&(iter<=n)&((v-u)~=0)
x=x1-v*(x1-x0)/(v-u);
x0=x1;
u=v;
x1=x; %在这个地方的x1值,目前当while循环全部运行完了才能得到一个值,如果我需要每次运行到这里就把x1输出如何进行?
v=feval(func,x1,xin);
err=abs(x1-x0);
iter=iter+1;
%fprintf('%2.0d %12.6d %12.6d %12.6d %12.6d\n',iter,x1,v,v-u,err)
end
if((v-u)==0)
disp('Division by zero')
end
if(iter>n)
disp('Method failed to converge')
end 存到一个变量里就行了。。比如
x1=x;
x2(i)=x1;
i=i+1;
简单描述了一下。。 最简单的方法就是,把后面的分号去掉。
页:
[1]