求 牛顿切线法解方程组的matlab程序
我们写论文报告,对于matlab的程序不怎么熟悉,特别是对方程组的,希望哪位高手帮忙下~~在此谢过!...
我们写论文报告,对于matlab的程序不怎么熟悉 ,特别是对方程组的 ,希望哪位高手帮忙下~~
在此谢过! 展开
在此谢过! 展开
展开全部
牛顿切线法的MATLAB主程序:
function [k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxmax)
x(1)=x0;
for i=1: gxmax
x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps); piancha=abs(x(i+1)-x(i));
xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1;
xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha xdpiancha];
if (abs(yk)<ftol)&&((piancha<tol)||(xdpiancha< tol))
k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha];
return;
end
end
if i>gxmax
disp('请注意:迭代次数超过给定的最大值gxmax。')
k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha];
return;
end
[(i-1),xk,yk,piancha,xdpiancha]';
里面有可能符号是中文下的,朋友注意一下就OK了!
function [k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxmax)
x(1)=x0;
for i=1: gxmax
x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps); piancha=abs(x(i+1)-x(i));
xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1;
xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha xdpiancha];
if (abs(yk)<ftol)&&((piancha<tol)||(xdpiancha< tol))
k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha];
return;
end
end
if i>gxmax
disp('请注意:迭代次数超过给定的最大值gxmax。')
k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha];
return;
end
[(i-1),xk,yk,piancha,xdpiancha]';
里面有可能符号是中文下的,朋友注意一下就OK了!
参考资料: http://hi.baidu.com/2008zhenghui
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function [k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxmax)
x(1)=x0;
for i=1: gxmax
x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps); piancha=abs(x(i+1)-x(i));
xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1;
xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha xdpiancha];
if (abs(yk)<ftol)&&((piancha<tol)||(xdpiancha< tol))
k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha];
return;
x(1)=x0;
for i=1: gxmax
x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps); piancha=abs(x(i+1)-x(i));
xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1;
xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha xdpiancha];
if (abs(yk)<ftol)&&((piancha<tol)||(xdpiancha< tol))
k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha];
return;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询