Matlab | Lab3——Newton迭代和Damped-Newton迭代

Matlab | Lab3——Newton迭代和Damped-Newton迭代Matlab 牛顿迭代代码 newton 迭代 damp

1.要求

给定非线性方程f(x)=arctan(x)+sin(x)-1=0
分别编写 Newton 迭代 ( 通常也称 Newton-Raphson 迭代 )
x_{k+1}=x_{k}-\frac{f(x_{k})}{f^{'}(x_{k})}
Damped-Newton (DN) 迭代
x_{k+1}=x_{k}-\tau \frac{f(x_{k})}{f^{'}(x_{k})} (其中阻尼参数 τ : 0 < τ < 1)
的程序 . 取阻尼参数 τ = 0 . 5 , 两种迭代方法的初始点 x 0 依次取值为 4 , 3 , 2 , 1 , 0 , 1 , 2 , 3 , 5 , 7 , 9;
停止条件 | f ( x k ) | < 10 8 或 迭代步数 k > 10 4 ( 此时 , 可认为迭代失败 )
求迭代步数和数值解 x_{k}

2.Matlab代码

(只给出牛顿迭代代码)

for a=1:11 x = input('x=');%开始迭代最初的x n=0; while (abs(atan(x)+sin(x)-1)>=10^(-8)) x = x - 0.5*(atan(x)+sin(x)-1)/(1/(1+x^2)+cos(x)); n=n+1; if(n>10000) break end end disp('该函数符合规定精度的解是:'); vpa(x,10) disp('迭代次数:') n end 

可视化:

 x=-10.0:0.002:30; f=atan(x)+sin(x)-1; y=0*x; k=find(abs(f-y)<=0.002);%找出交点 x2=x(k); y2=atan(x2)+sin(x2)-1; x=-10.0:0.02:30; f=atan(x)+sin(x)-1; y=0*x; figure(1) hold on grid on plot(x,y,'--') plot(x,f,'k') plot(x2,y2,'r.','MarkerSize',10)%用红色的实心点标注交点

结果:

 

今天的文章 Matlab | Lab3——Newton迭代和Damped-Newton迭代分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-16 16:27
下一篇 2024-12-16 16:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/87914.html