计算机数值计算方法实验报告.docx
《计算机数值计算方法实验报告.docx》由会员分享,可在线阅读,更多相关《计算机数值计算方法实验报告.docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、试验内容(包括试验详细内容、算法分析、源代码等等):姓名学号试验组试验时间指导老师成绩试验项目名称Jacobi迭代法试验目的及要求目的:用JacoZ?(4 1 iVx, 1 4 1 x2Il 1的解为玉=0.994、用上述程序i迭代法解线、,=109980,x2 = 1. = (0,0,0/7.28.3 , = 10- x=(0,0,0)4.2)试验(或算法)原理:设 Ax=b,A/TC / 宠。若 | A建立迭代格式,x(k+i) = Bx(k) + /(& = 0,1,k表示迭代次数。Jacobi迭代格式:工1 = b ,)B称Al) = J_黑则Ax二b有唯一解。 为迭代矩阵,一加/Ax
2、 = bx= Bx(n) + f,)=()称为迭代初始向量,(,=1,2)试验硬件及软件平台:PC 机,vc+6. 0, Internet 网。试验步骤:1 .依据算法事先写出相应程序。2 .启动PC机,进入vc集成环境,输入代码。3 .编译调试。4 .调试通过,计算出正确结果#include#includeSdefine MAX_n 100define PRECISION 0. 000001解输出void SulutionOutput(float x, int n) (int i;for(i=l;i=n;+i)printf(nx%d=%f”, i, xi);三对角方程组元素输入void Tr
3、iDiagonalMatrixInput(float a, float b, float c, float f, int n) (int i;printf (Input bl, cl, f 1:z,);scanf”,;for(i=2;in;+i)(printf(Input a%d,b%d,c%d, f%d:, i, i, i, i);scanf”, &ai,&bi,&ci,&fi);printf (Input a%d, b%d, f%dn, n,n);scanf&an, &bn, &fn);三对角方程组求解一-直接法void Z_G_method(float a, float b, float
4、 c, float f, int n) (int i;cl/=bl;for(i=2;in;+i)ci/=(bi-ai*ci-l);fl/=bl:for(i=2;i0;-i) fi-=ci*fi+l;void main 0(int n;float aMAX_n,bMAX_nfloat cMAX n,fMAX n;printf(,znlnput n=);scanf($d”, &n);TriDiagonalMatrixInput(a, b,c, f,n);Z_G_method (a, b, c, f, n);SulutionOutput(f, n);)3 1、2.验证线性方程组2 3 12 3 1%
5、X,01的解为、1 3)x, = 0.552632, x2 =-0.657895, x. =0.86842 l,x4 =-0.289474r 2 -1、1、-1 2 -103.用上述程序解线性方程组-1 2 -1刍=0,要求输出方程组-1 2 -1%0、-1 2)0)的解结果:验证结果例3的结果:争论:三对角线方程组是方程组中一种比较特殊的方程组,它的系数矩阵A是对角占优的三对角阵。对待 这类特殊的矩阵我们使用“追逐法”来解方程组。它首先对系数矩阵A作crout分解,通过与系数矩阵A对比得到两个矩阵即一个下三角阵L和一 个单位上三角阵U,这就是“追逐法”追的过程。接着对LY=f求解Y,再使用求
6、解的Y,对欧=丫求解得到X。这个过程就是“追逐法”赶得过程。通过这次试验,我们发觉对待不同的方程组,应当使用不同的方法,虽然三对角方程组也是方程组 的-种,我们对它虽然也能使用前面一个试验的Gauss消元法,但相对于gauss消元法,追逐法的 计算次数要少很多,这有利于节约资源,便利计算。指导老师意见:签名:年 月 日试验项目名称变步长法试验目的及要求:复合S而5。公式是提高精度的行之有效的方法,但是在使用求积公式之前,必需先给 出步长。步长取得太大精度难以保证,步长太小则导致计算量的增加,而事先给出一个 合适的步长往往是困难的,因此提出了在求积过程中依据精度要求自动确定积分步长的公式的逐次分
7、半加速法。试验(或算法)原理:将a, b等分成n个子区间,其长度为二区,在每个子区间上使用低阶求积公式进行计算,然n后把全部子区间上的计算结果求和,就得到了(幻在a, b上积分的近似值。本算法用复合simpson公式计算定积分/(工)Z的近似值,自动选取步长,使得相邻两次计算值之差的肯定值小于预 先给定的误差限试验硬件及软件平台:PC 机,vc+6. 0, Internet 网。试验步骤:1 .依据算法事先写出相应程序。2 .启动PC机,进入vc集成环境,输入代码。3 .编译调试。4 .调试通过,计算出正确结果试验内容(包括试验详细内容、算法分析、源代码等等):算法设计。输入 a,= 1, o
8、ld = O, /? = O计算 f(a)Jhcon = /() + f(b)输出s2.编写相应的程序上机调试。#include#includedouble f(double x) double y;if(x=0)else y=sqrt(l-x*x);return y;double simp(double a,double b,double e) int n,j;double p,con,h,s,old,t,x;n=l;p=0;con=f(a)+f(b);h=b-a;s=h*(con+4*f(a+0.5*h)/6;old=f(a+0.5*h);while(fabs(s-p)/15e)n=2*n
9、;p=s; h=(b-a)/n;t=0;for(j=l;j=n;j+)x=a+(j-0.5)*h;t=t+f(x);s=h*(con+4*t+2*old)/6;old=old+t;|return s;1void main()double a,b,e,s;a=0;b=l;e=le-6;s=siinp(a,b,c);prinlf(,s=%fn,s);)3.用上述程序验证J:色丝小的值为0.946083, = lxl0-6o4、用上述程序计算公, = 10”。5、用上述程序计算J; J1 d火 = 10 .试验结果与争论:验证结果例4的结果cT *C:zslDebugzsl.exe*s=0.7468
10、24Press any key to continue.例5的结果言 -C:zslDebugzsl. exe-s=0.785395Press any key to continue争论:采用变步长复合Simpson求积法解决那些用微积分方法所不能求解的积分问题。避开使用高阶newlon-coles公式带来的误差,能提高求积的精确度,但是采纳这种方法 从余项表达式可以看出,计算的精度与步长有关,从理论上讲,可以依据复合求积公式 的余项公式或其近似式,预先确定出恰当的h来,但是在实际使用中,由于被积函数的 高阶导数很难估量,或者被积函数没有解析表达式,因此,这个预先估量h的方法就不 便使用。指导老
11、师意见:签名:年 月 日a a2 4”、如试验目的及要求:用Gauss列主元素消去法解线性方程组a22* a2n工2*=b24 凡2力$试验项目名称Gauss列主元素消元法试验(或算法)原理:用二维数组编写程序实现Gauss列主元素消去解方程组。线性方程组求解问 题在很多科学计算问题中都会遇到,编写用于求解线性方程组的工具在现实中是特别有必要的。这 次试验的原理是应用gauss消元法来编写程序的,在肯定程度上gauss消元法便利了我们对线性方 程组的计算。试验硬件及软件平台:计算机Microsoft visua 1 C+ 6. 0试验步骤:1.依据算法事先写出相应程序。2 .启动PC机,进入v
12、c集成环境,输入代码。3 .编译调试。4 .调试通过,计算出正确结果。#include#include#dcfine N 3 void main() int i,j,k,l;float aNN,bN,xN,max,p,q,s;for(i=0;iN;i+)for(j=0;jN;j+)printf(a%dl%d=,i,j);scanf(%f,&alijj);for(i=0;iN;i+)printf(Mb%d=H,i);scanf(M%f;&bi);fbr(k=O;kN-l;k+) max=fabs(akk);l=k;for(i=k+l;imax) max=fabs(aik);l=i;) if(l!
13、=k) for(j=k;jN;j+) p=alkJUl;ak|j=alj;aUU=p;) P=bk;bk=bl;bl=p;Ifor(i=k+l ;iN;i+) q=aik/akk;for(j=k+ l;j=0;i-)(s=0;for(j=i+l;jN;j+) s=s+aij*xj;xi=(bi-s)/aii;)for(i=0;iN;i+) printf(x%d=%f,i,xi);)3-113-11的解为X =2,当=3r 12 -33、用上述程序验证线性方程组-18 3J 1,要求输出方程组的解。,要求输出方程组的解。1 -I4、用上述程序解线性方程组-2 114 T试验结果与争论:验证的结果
14、:4的结果:指导老师意见:签名:年 月 日试验内容(包括试验详细内容、算法分析、源代码等等):#include#include#define N 3阶数void jacobi (double aNN, doubIe bNt double xN, doubIe e) lint i,j;doubIe p, x1N, ep, sub;do(for(i=0;iN;i+)x1i=xi;for(i=0;iN;i+)lp=0;for(j=0;jN;j+)if(j! = i)P=p+aij*x1 j;xi = (bi-p)/ai i;)ep=0;for(i=0;iN;i+)sub=fabs(xi-x1 i);
15、if (epe);)void mainO(double aN N = 4, 1,1,1,4,1,1,1.4):double bN = 7, 10, 7;doub I e xN = 0, 0, 0);doubIe e;int i;e=1e-4;误差范围jacobi (a, b, x, e);for(i=0;iN;i+)printf (x%d=%fn, i,xi);)例4#include#includedefine N 3阶数void jacobi(double aNN, double bN, double xN, double e) int i,j;double p, xlN, ep sub;试
16、验项目名称I常微分方程初值问题的数值方法试验目的及要求:用数值微分法与数值积分法求一阶常微分方程初值问题S在离散点a xQ xx Xe0,1,输y(0) = 1出精确解与数值解.,并分析结果,精确解),=侬、3.欧拉法#include#includedoub1e f (doub1e x,doubIe y) double z;3.改进欧拉法# i nc1ude#includedoub1e f(doub1e x,double y)z=y-(2*x)/y;return z;)doubIe g (doubIe x)z=y-2*x/y;return z;)doubIe g(doubIe x)(doubl
17、e y;y=sqrt(1+2*x);return y;)void main()(int n, i;doubIe a, b, h, xO, yO,x1,y1, e;a=0;b=1;n=10;y0=1;h= (b-a) /n;xO=a;for(i=0;i=n-1;i+)x1=x0+h;y1=y0+h*f(xO, yO);e=fabs(g (x1)-y1);p r i ntf (e%d=%fn, i+1, e);y0=y1;x0=x1;)精确值与计算值#i ncIude#i ncIudedoubIe f (double x, double y) (double z;z=y-(2*x)/y;retur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 数值 计算方法 实验 报告
限制150内