数值实验报告.

上传人:我** 文档编号:115356272 上传时间:2019-11-13 格式:DOC 页数:20 大小:387.50KB
返回 下载 相关 举报
数值实验报告._第1页
第1页 / 共20页
数值实验报告._第2页
第2页 / 共20页
数值实验报告._第3页
第3页 / 共20页
数值实验报告._第4页
第4页 / 共20页
数值实验报告._第5页
第5页 / 共20页
点击查看更多>>
资源描述

《数值实验报告.》由会员分享,可在线阅读,更多相关《数值实验报告.(20页珍藏版)》请在金锄头文库上搜索。

1、(实验报告的首页)本科实验报告课程名称: 计算机数值方法 实验项目: 方程求根、线性方程组的直接求解和迭代求解、 代数差值和最小二乘法拟合 实验地点: 专业班级: 学号: 学生姓名: 指导教师: 年 月 日学生姓名实验成绩实验名称 实验一 方程求根实验目的和要求(必填)熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0在1,2内的一个实根,且要求满足精度|x*-xn|0.510-5实验内容和原理(必填)函数f(x)在区间(x,y)上连续,先在区间(x,y)确定a与b,若f(a),f(b)异号,说明在区间(a,b

2、)内存在零点,然后求f(a+b)/2。假设F(a)0,ab, 如果f(a+b)/2=0,该点即为零点; 如果f(a+b)/20,则区间(a,(a+b)/2)内存在零点,(a+b)/2b;返回重新循环,不断接近零点。通过每次把f(x)的零点所在区间收缩一半的方法,使区间内的两个端点逐步逼近函数零点,最终求得零点近似值。主要仪器设备台式或笔记本计算机实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)1. 割线法 程序代码#include stdio.h#include math.hint main() float c,a=1.0,b=2.0; while(1) c=b-(b*b*b+4

3、*b*b-10)*(b-a)/(b*b*b+4*b*b-a*a*a-4*a*a); if(fabs(b-c)0.5*0.00001)break; b=c; printf(%fn,b); printf(%fn,c); getch();2.二分法 程序代码 #include stdio.h#include stdlib.h#include math.hint main() double a=1.0, b=2.0; double c,d; while(1) c=(a+b)/2; d=pow(c,3)+4*c*c-10; if (-0.000005 d & d 0.000005)break;else

4、if(d 0) b=c; printf(%ft%fn,a,b); printf(%fn,c); printf(%fn,d); getch(); return 0;截图实验结果和分析用二分法和割线法均能计算出方程的根,但割线计算次数少于二分法,且能够较早达到精度要求,割线法的代码也较为简单明了,实用方便。心得体会(遇到的问题和解决方法)通过本次试验,编写代码,运行程序,使我复习了c语言的同时也加深了对二分法和割线法的理解,并认识了一些新的函数。实验名称 实验二 线性方程组的直接求解实验目的和要求合理选择利用Gauss消元法、LU分解法、追赶法求解下列方程组: (n=5,10,100,)实验内容L

5、U分解法:将系数矩阵A转化为A=L*U,L为单位下三角矩阵,U为普通上三角矩阵,然后通过解方程组l*y=b,u*x=y,来求解x。高斯消元法:将原方程组化为三角形方阵的方程组:lik=aik/akk aij= aij- lik* akj ( k=1,2,n-1 i=k+1,k+2, ,n j=k+1,k+2, ,n+1 ) xn= ann+1/ ann xk=( akn+1-akj xj)/ akk完全主元素消元法和列主元素消元法主要仪器设备台式或笔记本计算机实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)1.列主元素消元法 程序代码#include stdio.hint mai

6、n() float a34=1,2,3,14,0,1,2,8,2,4,1,13;float x3; float sum=0; int k,i,j; for(k=0;k2;k+) for(i=k+1;i3;i+) for(j=k+1;j4;j+)aij=aij-aik/akk*akj; for(i=0;i3;i+) for(j=0;j=0;k-)sum=0;for(j=k+1;j3;j+)sum+=akj*xj; xk=(ak3-sum)/akk; for(i=0;i3;i+)printf (x%d=%fn,i+1,xi);printf(n);getch();2.完全主元素消元法#include

7、 “stdio.h”#include”iostream” use namespace std;#include”math.h”float a100101;float x10;int N; void shuchu()for(int i=1;i=N;i+)for(int j=1;j=N+1;j+)coutaij ;coutendl;void initdata()cout请输入矩阵阶数:N;cout请输入矩阵各项:endl;for(int i=1;i=N;i+)for(int j=1;jaij;coutendl;void main() int i,k;int z10;int maxi,maxj;in

8、itdata();for( i=1;i=N;i+)zi=i;for( k=1;kN;k+)maxi=k;maxj=k;float maxv=abs(akk);for(i=k;i=N;i+)for(int j=k;jmaxv)maxv=abs(aij);maxi=i;maxj=j;if(maxi!=k) for(int j=1;j=N+1;j+)float t=akj;akj=amaxij;amaxij=t;if(maxj!=k) for(i=1;i=N;i+)float t=aik;aik=aimaxj;aimaxj=t;int t=zk;zk=zmaxj;zmaxj=t; for(int i

9、=k+1;i=N;i+) float l=aik/akk;for(int j=k;j0;i-)float s=0;for(int j=i+1;j=N;j+)s+=aij*xzj;xzi=(aiN+1-s)/aii;cout完全主元素消去法之后的矩阵为:endl;shuchu(); for(i=1;i=N;i+) coutxi=xiendl;截图实验结果和分析对于完全主元素和列族元素,都是先消元,再进行回代,过程中可以不计算主元素下方的数据,以节约内存和时间。列主元素消元法相比完全主元素要节省时间,而且在算法设计上优于完全主元素,它只需要一次按列选主元素然后换行使之变到主元素位置,在进行消元即可

10、。对于LU分解法,分解矩阵为单位下三角阵L与上三角阵U的乘积,然后解方程组Ly=b,回代,解方程组Ux=y。其中的L为n阶单位下三角阵、U为上三角阵。心得体会(遇到的问题和解决方法)本次试验的编程过程非常复杂,不得不借助网络查询相关知识,通过不断地修改,是我更加熟悉对于c和c+的使用,同时对于消元法有了更深的理解,同时也是我认识到自己知识的匮乏,还需更加深入的学习。实验名称 实验三 线性方程组的迭代求解实验目的和要求使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。 实验内容设线性方程组 Ax=b的系数矩阵A可逆,且主对角元素a11,a22,ann均不为零,令D=diag(a11,a22,ann),并将A分解成 A=(A-D)+D,从而线性方程组可写为方程Dx=(D-A)x+b,则有迭代公式x(k+1)=B1x(k)+f1其中,B1=I-D-1A,f1=D-1b。主要仪器设备台式或笔记本计算机实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)1.雅克比迭代法 程序代码#include stdio.h#include math.hint main() float a33=10,-1,-2,-1,10,-2,-1,-1,5,b3=7.2,8.3,4.2; float x3=0,0,0,sum;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号