没有合适的资源?快使用搜索试试~ 我知道了~
南京邮电大学数值计算实践报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 167 浏览量
2021-10-08
16:44:32
上传
评论 3
收藏 2.31MB DOC 举报
温馨提示
试读
40页
南京邮电大学数值计算实践报告.doc
资源推荐
资源详情
资源评论
. -
数值计算实践
I、方程求根
一、实验目的
熟悉和掌握 Newton 法,割线法,抛物线法的方法思路,并能够在 matlab
上编程实现
二、问题描述
(1).给定一个三次方程,分别用 Newton 法,割线法,抛物线法求解.
方程的构造方法:
(a)根:方程的根为学号的后三位乘以倒数第二位加 1 再除以 1000.
假设你的学号为 B06060141,那么根为 141*(4+1)/1000=0.564
(b)方程:以你的学号的后三位数分别作为方程的三次项,二次项,一次项的系数,
根据所给的根以及三个系数确定常数项.
例如:
你的学号是 B06060141,那么你的方程是 x
3
+4x
2
+x+a
0
=0 的形式.
方程的根为 0.564,因此有
0.564
3
+4*0.564
2
+0.564+a0=0,于是 a0=-2.015790144
你的方程为 x
3
+4x
2
+x-2.015790144=0.
(2)假设方程是 sinx+4x
2
+x+a0=0 的形式〔三个系数分别是学号中的数字〕,
重新解决类似的问题
(3)构造一个五次方程完成上面的工作.
四次方程的构造:将三次多项式再乘以(x-p*)
2
得到对应的五次多项式(p*为已经
确定的方程的根,显然,得到的五次方程有重根).
(4)将〔2〕中的方程同样乘以(x-p*)得到一个新的方程来求解
注:(1)Newton 法取 0.5 为初值,割线法以 0,1 为初值,抛物线法以 0,0.5,1 为初
值,
(2)计算精度尽量地取高.
终止准那么:根据 来终止
. . word.zl-
. -
(3)可供研究的问题:
〔一〕 的取值不同对收敛速度有多大的影响
〔二〕将注〔1〕中的初值该为其它的初值,对收敛性以及收敛速度有无影响
〔三〕能否求出方程的所有的根
〔4〕实验报告的撰写
实验报告包含的容:〔一〕实验目的〔二〕问题描述〔三〕算法介绍〔包括
根本原理〕〔四〕程序〔五〕计算结果〔六〕结果分析〔七〕心得体会
三、算法介绍
在本问题中,我们用到了 newton 法,割线法,抛物线法。
1.Newton 法迭代格式为:
当初值与真解足够靠近,newton 迭代法收敛,对于单根,newton 收敛
速度很快,对于重根,收敛较慢。
2.割线法:为了回避导数值的计算,使用上的差商代替,得到割线法迭代
公式:
割线法的收敛阶虽然低于 newton 法,但迭代以此只需计算一次函数值,
不需计算其导数,所以效率高,实际问题中经常应用。
3.抛物线法:可以通过三点做一条抛物线,产生迭代序列的方法称为抛物
线法。其迭代公式为:
其中
是一阶均差和二阶均差。
收敛速度比割线法更接近于 newton 法。
对于本问题的解决就以上述理论为依据。终止准那么为:
此题中所有精度取 1e-8。
四、程序计算结果
问题一
根据所给的要求,可知待求的方程为:
牛顿法
建立 newton_1.m 的源程序,源程序代码为:
function y=newton_1(a,n,x0,nn,eps1)
x(1)=x0;
b=1;
i=1;
. . word.zl-
. -
while(abs(b)>eps1*x(i))
i=i+1;
x(i)=x(i-1)-n_f(a,n,x(i-1))/n_df(a,n,x(i-1));
b=x(i)-x(i-1);
if(i>nn)error
return;
end
end
y=x(i);
建立 n_f.m 的源程序来求待求根的实数代数方程的函数,源程序代码为:
function y=n_f(a,n,x)% 待求根的实数代数方程的函数
y=0.0;
for i=1:(n+1)
y=y+a(i)*x^(n+1-i);
end
建立 n_df.m 的源程序来方程的一阶导数的函数,源程序代码为:
function y=n_df(a,n,x)% 方程的一阶导数的函数
y=0.0;
for i=1:n
y=y+a(i)*(n+1-i)*x^(n-i);
end
在matlab软件中执行以下语句并得到的最终结果截图:
割线法
建立 gexian.m 的源程序,源程序代码为
function x=gexian(f,x0,x1,e)
if nargin<4,e=1e-4;end
y=x0;x=x1;i=0;
. . word.zl-
. -
while abs(x-y)>e
i=i+1;
z=x-(feval(f,x)*(x-y))/(feval(f,x)-feval(f,y));
y=x;
x=z;
end
i
在matlab软件中执行以下语句并得到的最终结果截图:
抛物线
建立 paowuxian.m 的源程序,源程序代码为:
function x=paowuxian(f,x0,x1,x2,e)
if nargin<4,e=1e-4;end
x=x2;y=x1;z=x0;i=0;
while abs(x-y)>e
i=i+1;
h1=y-z;
h2=x-y;
c1=(feval(f,y)-feval(f,z))/h1;
c2=(feval(f,x)-feval(f,y))/h2;
d=(c1-c2)/(h1+h2);
w=c2+h2*d;
xi=x-(2*feval(f,x))/(w+(w/abs(w))*sqrt(w^2-4*feval(f,x)*d));
z=y;
y=x;
x=xi;
end
i
. . word.zl-
. -
在matlab软件中执行以下语句并得到的最终结果截图:
研究一:只改变初值
由上述结果可知,方程的解在 0.2 附近,所以将牛顿法为 0.2;割线法的初值
设为 0,0.4;抛物线法的初值设为 0,0.2,0.4;
牛顿法
根据问题1中牛顿法的程序,在matlab软件中执行以下语句并得到的最终结果
截图:
割线法
根据问题1中割线程序,在matlab软件中执行以下语句并得到的最终结果截图:
. . word.zl-
剩余39页未读,继续阅读
资源评论
- 迪丽热巴的阿丝2023-11-01资源内容详细,总结地很全面,与描述的内容一致,对我启发很大,学习了。
- tangtanglyin2021-12-05用户下载后在一定时间内未进行评价,系统默认好评。
- 用户昵称1145142022-10-23非常有用的资源,可以直接使用,对我很有用,果断支持!
- 月夜花�明恋2023-10-24这个资源值得下载,资源内容详细全面,与描述一致,受益匪浅。
- m0_643573302021-12-04用户下载后在一定时间内未进行评价,系统默认好评。
dchw66
- 粉丝: 21
- 资源: 18万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- 基于Javascript的结婚请帖设计源码 - Invitation
- mysql语句大全及用法
- mysql语句大全及用法
- mysql语句大全及用法
- MySQL是一种广泛使用的开源关系型数据库管理系统
- MySQL是一种广泛使用的开源关系型数据库管理系统
- MySQL是一种广泛使用的开源关系型数据库管理系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功