- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数值分析》
实 验 报 告 册
姓名:
学号:
专业:
年级:
计算机科学学院
计算机应用教研室
2009 年 春季 学期
目 录
实验一 3
实验二 5
实验三 7
实验四 10
实验五 12
实验六 15
实验七……………………………………………………………………18
实验一
一、课题名称
非线性方程数值解法
二、目的和意义
学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;明确插值多项式和分段插值多项式各自的优缺点;熟悉插值方法的程序编制;如果绘出插值函数的曲线,观察其光滑性。
三、计算公式
Lagrange插值公式:
牛顿插值公式:
四、结构程序设计
程序设计:
#includemath.h
float f(float x)
{
return((x*x*x-1)/3); /*牛顿迭代函数*/
}
main()
{
float x1,x2,eps,d;int k=0;
clrscr();
printf(\n input x1=); /*输入迭代初值*/
scanf(%f,x1);
printf(\n input eps=); /*输入求解精度eps*/
scanf(%f,eps);
do{
k++;
x1=x2;
x2=f(x1);
printf(\n %d %f\n,k,x2);
}while(fabs(x2-x1)=eps);
printf(the root of f(x)=0 is x=%f,k=%d\n,x2,k); /*输出x和迭代次数k*/
getch();
}
五、结果讨论和分析
计算结果分析:
将六种迭代格式分别代入程序试验:
第一种格式:无论何值都无法求出,即发散
第二种格式:初值为任意的x(x2=1),精度为0.00001
X=-0.347296,k=6
其他值为发散。
第三种格式:初值为任意的x(x0),精度为0.0001
X=1.879372,k=10
其他值为发散。
第四种格式:初值为任意值,精度为0.00001
X=-0.347296,k=5
(5)第五种格式:初值为任意值,精度为0.00001
X=-0.347296,k=4
第六种格式:初值为任意值,精度为0.00001
X=-0.347296,k=4
由此可知不同的初值对公式的计算有影响,当初值不满足函数的收敛条件时,无法计算结果,函数发散。
精度的大小不同也使迭代函数迭代的次数不同,从而影响xn的近似程度。
实验二
一、课题名称
解线性方程组的直接方法
二、目的和意义
掌握线性方程组直接接法的基本思想;了解不同数值方法解线性方程组的原理、实现条件、使用范围、计算公式;培养编程与上机调试能力。
三、计算公式
消去法
设a(k)kk=0,对k=1,2,……,n-1计算
mik=a(k)ik/a(k)kk
a(k+1)ij=a(k)ij-mika(k)kj i,j=k+1,k+2,……,n
b(k+1)i=b(k)i-mikb(k)k
xn=b(n)n/a(n)nn
xi=(b(i)i-Σa(i)ijxj)/a(i)ii i=n-1,n-2,……,1
平方根法 追赶法
lij=(aii-Σl2ik)1/2 Ly=f
lji=(aji-Σljklik)/lii j=i+1,i+2,……,n Ux=y
y1=f1/l1
y2=(fi-aiyi-1)/li i=2,3,……,n
四、结构程序设计
用追赶法求解线性方程组
#includestdio.h
main()
{
FILE
文档评论(0)