计算方法上机实验报告.doc

上传人:罗晋 文档编号:6081522 上传时间:2020-09-06 格式:DOC 页数:13 大小:611KB
返回 下载 相关 举报
计算方法上机实验报告.doc_第1页
第1页 / 共13页
计算方法上机实验报告.doc_第2页
第2页 / 共13页
计算方法上机实验报告.doc_第3页
第3页 / 共13页
计算方法上机实验报告.doc_第4页
第4页 / 共13页
计算方法上机实验报告.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《计算方法上机实验报告.doc》由会员分享,可在线阅读,更多相关《计算方法上机实验报告.doc(13页珍藏版)》请在三一文库上搜索。

1、计算方法上机实验报告 班 级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXXXXXXXXX 任课教师:XXX二一八年五月二十五日前言通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton迭代法、Jacobi迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB程序的编写。以下为本次上机实验报告,按照实验内容共分为六部分。实验一:一、实验名称及题目: Newton迭代法 例2.7(P38):应用Newton迭代法求x

2、3-x-1=0在x=1附近的数值解xk,并使其满足|xk-xk-1|=tolx0=x1;y=subs(f,z,x0);y1=subs(f1,z,x0);x1=x0-y/y1;k=k+1;endx=double(x1)K四、运行结果:实验二:一、实验名称及题目:Jacobi迭代法例3.7(P74):试利用Jacobi迭代公式求解方程组5-1-1-1-110-1-1-1-15-1-1-1-110x1x2x3x4=-412834要求数值解X(k)满足|X-Xk|210-4,其中X=(1,2,3,4)T为方程组的精确解.2、 解题思路:首先将方程组中的系数矩阵分解成三部分,即:,为对角阵,为下三角矩阵

3、,为上三角矩阵。之后确定迭代格式,( , 即迭代次数),称为迭代矩阵。最后选取初始迭代向量,开始逐次迭代。最后验证精度。(迭代阵:。)雅克比迭代法的优点明显,计算公式简单,每迭代一次只需计算一次矩阵和向量的乘法,且计算过程中原始矩阵A始终不变,比较容易并行计算。然而这种迭代方式收敛速度较慢,而且占据的存储空间较大。三、Matlab程序代码:function jacobi(A,b,x0,eps,x1)D = diag(diag(A);%求A的对角矩阵L = -tril(A,-1);%求A的下三角矩阵U = -triu(A,1);%求A的上三角矩阵B = D(L+U);f = Db;x = B*x

4、0+f;n = 1;%迭代次数while norm(x-x1)=eps x = B*x+f; n = n+1;endformat longnxjingdu=norm(x-x1)四、运行结果:实验三:一、实验名称及题目:Gauss-Seidel 迭代法例3.8(P75):试利用Gauss-Seidel迭代公式求解方程组5-1-1-1-110-1-1-1-15-1-1-1-110x1x2x3x4=-412834,并使其数值解X(k)满足精度要求|X-Xk|210-4,其中X=(1,2,3,4)T为方程组的精确解.2、 解题思路:Gauss-Seidel迭代法与Jacobi迭代法思路相近,首先将方程

5、组中的系数矩阵分解成三部分,即:,为对角阵,为下三角矩阵,为上三角矩阵。之后确定迭代格式,( , 即迭代次数),称为迭代矩阵。最后选取初始迭代向量,开始逐次迭代。最后验证精度。(迭代阵:。)Gauss-Seidel迭代法与Jacobi迭代法相比速度更快,但不全如此。有例子表明:Gauss-Seidel迭代法收敛时,Jacobi迭代法可能不收敛;而Jacobi迭代法收敛时,Gauss-Seidel迭代法也可能不收敛。三、Matlab程序代码:function gauss_seidel(A,b,x0,eps,x1)D = diag(diag(A);%求A的对角矩阵L = -tril(A,-1);%

6、求A的下三角矩阵U = -triu(A,1);%求A的上三角矩阵B = (D-L)U;f = (D-L)b;x = B*x0+f;n = 1;%迭代次数while norm(x1-x)=eps x = B*x+f; n = n+1;endformat longnxjingdu=norm(x1-x)四、运行结果:实验四:一、实验名称及题目: Lagrange 插值法 例4.1(P88):给定函数fx=x(1+cosx)及插值节点x0=0, x1+8, x2=4, x3=38, x4=2.试构造Lagrange插值多项式,给出其误差估计,并由此计算f316及其误差.2、 解题思路:一般来说,如果我

7、们有个点,各互不相同。那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为:,其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:。三、Matlab程序代码:function y=lagrange(x0,x)n=length(x0);%向量长度s=0;for k=1:n%k从1到n的循环 p=1.0; for j=1:n if j=k%“=”不等于的意思 p=p*(x-x0(j)/(x0(k)-x0(j); end end y0=x0(k)*(1+cos(x0(k); s=p*y0+s;endformat longswucha=abs(x*(1+cos(x)-s)四、运行结果:五、La

8、grange插值图像绘制%Lagrange插值图像算法x=linspace(0,1002,200);s=linspace(0,1000,200);x0=0;pi/8;pi/4;3*pi/8;pi/2;n=length(x0);s=0;for k=1:n p=1.0; for j=1:n if j=k p=p.*(x-x0(j)/(x0(k)-x0(j); end end y0=x0(k)*(1+cos(x0(k); s=p*y0+s;endplot(x,s,r);grid on;title(Lagrange)xlabel(X),ylabel(Y);axis normal;实验五:一、实验名称及

9、题目:Newton 插值法 例4.3(P96):已知fx=1+ch2x,试取插值节点x0=0.35, x1=0.50, x2=0.65, x3=0.80, x4=0.95,构造4次Newton插值多项式,由此计算f0.7的逼近值,并指出其绝对误差.2、 解题思路:将拉格朗日插值公式中的改写成:,其中,为待定定系数。又,,。将带入可得:。三、Matlab程序代码:function newton_interpolation(x0,x)format longn=length(x0);syms zf=sqrt(1+cosh(z)2);a(1)=subs(f,z,x0(1);for k=1:n-1 y0

10、=subs(f,z,x0(k); y1=subs(f,z,x0(k+1); d(k,1)=(y1-y0)/(x0(k+1)-x0(k);%一阶差商endfor j=2:n-1 for k=1:n-j d(k,j)=(d(k+1,j-1)-d(k,j-1)/(x0(k+j)-x0(k);%二阶差商及以上 endenddouble(d)for j=2:n a(j)=d(1,j-1);endb(1)=1;c(1)=a(1);for j=2:n b(j)=(x-x0(j-1).*b(j-1); c(j)=a(j).*b(j);endnp=double(sum(c)wucha=double(abs(np

11、-subs(f,z,x)四、运行结果:五、Newton插值图像绘制实验六:一、实验名称及题目: Gauss 求积公式 例5.7(P140):试构造Gauss型求积公式-11f(x)dxA0fx0+A1fx1+A2fx2,并由此计算积分01t(1+t)2dt.2、 解题思路:设高斯-勒让德求积公式是:,依次代入,解得。利用换元公式变换原式的积分上下限,在套用高斯-勒让德求积公式求得积分。三、Matlab程序代码:function gauss(a,b)syms tf=sqrt(t)/(1+t)2;P=-sqrt(3/5) 0 sqrt(3/5); A=5/9 8/9 5/9; s=0;for i=1:3; x=P(i); y=subs(f,t,(b-a)*x/2+(a+b)/2); s=s+A(i)*y;endformat longS=double(a-b)/2*s)四、运行结果:结束语在本学期的计算方法课程学习中,我们感受到了巧妙的数学计算方法在解决实际问题中带来的便利与高效,借助计算机解决科学计算问题也是我们当代大学生应当掌握的必要技能。在本课程的上机实验过程中,我们亲自体验了课本中所学到的算法在计算机上的使用,使用计算机语言,如MATLAB和C语言等进行编程,加深了我们对各类算法及其理论的理解,并进一步激发了我们对计算方法这门课程进行持续学习的学习兴趣。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1