概述
matlab牛顿迭代法实例及代码
MATLAB代码如下:
x=linspace(0,15);
y=(x-1).*(x-3).*(x-9).*(x-12);
plot(x,y);%画函数图像
%将坐标轴平移到原点
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
%将坐标轴平移到原点
xlabel('x');
ylabel('y');
x0=15*rand(1);%生成初始值x0
syms X Y DY;
Y=(X-1).*(X-3).*(X-9).*(X-12);
DY=diff(Y,X);
sign=1;%循环进行条件
T=0;%循环次数
while(sign==1)
Y0=double(subs(Y,X,x0));%计算Y(X0),加double变为浮点型
DY0=double(subs(DY,X,x0));%计算Y在X0的导数,加double变为浮点型
x0=x0-(Y0/ DY0); %迭代公式
con=abs(Y0/ DY0);%计算Y0/ DY0的绝对值
if(con<=0.01)%con<=0.01循环终止条件
sign=0;
else
sign=1;
T=T+1;
end
end
由于随机生成的初始值在12附近,因此最终求得的根为12,也体现出来牛顿迭代法的一个缺陷—不能求出所有根,一般情况只能求出初始值附近的根。牛顿迭代法原理、不足等可参考博文:https://blog.csdn.net/zsjzliziyang/article/details/110646314
`
最后
以上就是背后菠萝为你收集整理的matlab牛顿迭代法实例及代码的全部内容,希望文章能够帮你解决matlab牛顿迭代法实例及代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复