数值计算方法实验报告.doc_第1页
数值计算方法实验报告.doc_第2页
数值计算方法实验报告.doc_第3页
数值计算方法实验报告.doc_第4页
数值计算方法实验报告.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数值计算方法实验报告目 录实验一 误差定积分2实验二 非线性方程求根4 (一) 牛顿迭代法4 (二) 牛顿下山法5实验三 解线性代数方程组列主元消元法7实验四 解线性代数方程组追赶法9实验五 插值与拟合三次样条差值11实验一 误差定积分实验内容:用两种方法求解以下积分:1. , 初值 2. ,初值=1-.实验过程: 1 1利用C语言编程求解,程序如下:#include void main()double a=100,b,t,I; int n; for (n=50;n=0;n-) b=(1-a)/n; t=b;b=a;a=t; printf(n=%d,I=%lf ,n,b);1.2.命令窗口中程序结果如下:2.1利用C语言编程求解,程序如下:#include void main()double a=0.63212056,b,t,I;int n;for(n=0;n=16;n+)b=1-a*(n+1);t=b;b=a;a=t;printf(n=%d,I=%lfn,n,b);1.2.命令窗口中程序结果如下:实验结果分析:由运行就更可知,的结果不可靠。因为在计算时有舍入误差等,由于式子是要联想乘以n会将舍入误差放大。最后的结果由于误差放大了,所以结果不可靠。 由运行可知,的结果可靠且接近直值,由于在式子中是乘以1/n,在连续的乘以1/n会将舍入误差放小,因而所得值可靠。实验二 非线性方程求根实验内容: 用牛顿迭代法和牛顿下山法求解方程f(x)=,取近似值。1牛顿迭代法: ,直到。2牛顿下山法: ,(=1至合适),且直到|实验过程:1用牛顿迭代法求解1.1利用C语言编程求解,程序如下:#include #include double f(double x)double f;f=pow(x,3)/3-x;return f;double g(double x)double g;g=pow(x,2)-1;return g;void main()double a=-0.99,b,t;int n;for (n=0;fabs(b-a)1e-5;n+)b=a-f(a)/g(a);t=b;b=a;a=t;printf(n=%d,x=%lfn,n,b);1.2.命令窗口结果截屏如下:2用牛顿下山法求解2.1利用C语言编程求解,程序如下:#include #include double f(double x)double f;f=pow(x,3)/3-x;return f;double g(double x)double g;g=pow(x,2)-1;return g;void main()double a=-0.99,b=a-f(a)/g(a),t,k;int n,m;for (n=0;fabs(b-a)1e-5;n+)for(m=0;fabs(f(b)fabs(f(a);m+)b=a-pow(0.5,m)*f(a)/g(a);k=pow(0.5,m);printf(k=%lf,f(b)=%lf,x=%lf,n=%dn,k,f(b),b,n);t=b;b=a;a=t;2.2.命令窗口结果截屏如下:实验结果分析:由两个结果对比可知,牛顿迭代法的迭代次数较多,但是简单可靠。可见牛顿下山法要比牛顿迭代法的收敛速度快的多。但是对函数有一定的要求。牛顿迭代要求函数能求导。 实验三 解线性代数方程组列主元消元法实验内容:用列主元法解线性方程组=实验过程:1. 利用C语言编程求解,程序如下:#include stdio.h#include math.hmain()int i,j,p,n=0;double b5,temp,x4,max,a45=1.1348,3.8326,1.1651,3.4017,9.5342,0.5301,1.7875,2.5330,1.5435,6.3941,3.4129,4.9317,8.7643,1.3142,18.4231,1.2371,4.9998,10.6721,0.0147,16.9237;printf(请确定你的矩阵n); for(i=0;i4;i+)for(j=0;j5;j+)printf(%lf ,aij);printf(n); /找第一列的最大值/max=a00;for(i=0;i4;i+)if(maxai0);max=ai0;/找第一列中最大值索在的行/for(i=0;i4;i+)if(max=ai0)break;n=i-1; /将最大值一行换为第一行/for(i=0;i5;i+)bi=ani;ani=a0i;a0i=bi;/第一列为0/for(i=0;i4;i+) temp=a00/ai+10;for(j=0;j5;j+)ai+1j=temp*ai+1j-a0j;printf(第一次列主消元后的矩阵n);for(i=0;i4;i+)for(j=0;j5;j+)printf(%-9.5lf ,aij);printf(n); /找第二列的最大值/max=a11;for(i=1;i4;i+)if(maxai1);max=ai1;/找第二列中最大值索在的行/for(i=1;i4;i+)if(max=ai1)break;n=i; /将最大值行换为第二行/for(j=1;j5;j+)bj=anj;anj=a1j;a1j=bj; /第二列为0/for(i=1;i4;i+) temp=a11/ai+11;for(j=1;j5;j+)ai+1j=temp*ai+1j-a1j;printf(第二次列主消元后的矩阵n);for(i=0;i4;i+)for(j=0;j5;j+)printf(%-9.5lf ,aij);printf(n); /找第 三列的最大值/max= fabs(a22);for(i=2;i4;i+)if(maxai2);max=ai2;/找第三列中最大值索在的行/for(i=2;i4;i+)if(max=ai2)break;n=i-1; /将最大值行换为第三行/for(j=2;j5;j+)bj=anj;anj=a2j;a2j=bj; /第三列为0的矩阵/for(i=2;i4;i+) temp=a22/ai+12;for(j=2;j5;j+)ai+1j=temp*ai+1j-a2j;printf(第三次列主消元后的矩阵n);for(i=0;i4;i+)for(j=0;j=0;p-)xp=ap4;for(i=3;ip;i-)xp=xp-api;xp=xp/app;printf(n计算所得x的值为:n);for(i=0;i4;i+)printf(x%d=%lfn,i+1,xi);2.命令窗口结果截屏如下:实验结果分析:这种方法是将矩阵化为三角方程在求解。所以约化主元不为0,虽然可以完成方程的求解,但是无法保证结果的可靠性。如果我们在选择整个列子中块中最大的元作为约化列主,就能解决上面可能发生的矛盾,我们就将每次次消元时的最大值作为消元列主。这样就解决了计算过程中的舍入误差。这样消去的到的三角阵就较为正确,所以列主消元得到的值更可靠。实验四 解线性代数方程组追赶法实验内容:, 用追赶法解三角方程组Ax=d, d=实验过程:1. 利用C语言编程求解,程序如下:#include void main() a55=2,2,0,0,0,-1,1,2,0,0,0,-1,1,2,0,0,0,-1,1,2,0,0,0,-1,1,f5=6,7,9,11,1,c4,d5,e4,y5,x5; int i,n,k;for(i=1;i5;i+) d0=a00;ei-1=aii-1;ci=ai-1i/di;di=aii-aii-1*ci-1;for(i=1;i5;i+)c0=a01/a00;ci=ai-1i/(ei*ci-1); for(n=1;n0;k-)x5=y5;xk=yk-ck*xk+1;printf(%lf,xk);2.命令窗口结果截屏如下:实验结果分析:追赶法的主要问题是把矩阵分解为两个对角阵,用循环把每一个元素表示出来是重点,所以要很清晰的理解追赶法求解的步骤和思路。实验五 插值与拟合三次样条差值实验内容:已知直升机旋转机翼外形曲线轮廓线上的某些点及端点处的一阶导数值,是S0=1.8648,S19=-0.046115试计算该曲线的横坐标为2,4,6,12,16,30,60,110,180,280,400,515该点处的纵坐标(要求该曲线具有二阶光滑度)。k01234560.523.18.017.9528.6539.6250.655.287949.413.8420.224.928.4431.1k78910111278104.6156.6208.6260.7312.53536.536.634.631.631.0k131415161718364.4416.346849450752020.914.87.83.71.50.2实验过程:1. 利用C语言编程求解,程序如下:#includestdio.h#includemath.hmain() double x19= 0.52,3.1,8.0,17.95,28.65,39.62,50.65,78,104.6,156.6,208.6,260.7,312.5,364.4,416.3,468,494,507,520, f19=5.28794,9.4,13.84,20.2,24.9,28.44,31.1,35,36.5,36.6,34.6,31.6,31.0,20.9,14.8,7.8,3.7,1.5,0.2;double x0,y,m19,n19;int i,j;printf(请输入你要求的插值(0.52-520):n);scanf(%lf,&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论