2023年计算机数值方法实验报告.docx
《2023年计算机数值方法实验报告.docx》由会员分享,可在线阅读,更多相关《2023年计算机数值方法实验报告.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TAIYUAN UNIVERSITY OF TECHNOLOGY本科实验报告课程名称:计算机数值方法实9佥项目:方程求根线性方程组的直接解法线性方程组的迭代解法代数插值和最小二乘法拟合多项式实验地点:逸夫302专业班级:软件学号:学生姓名:指导教师:田华2023年4 月2 4日实验结果和分析123 14 0128241 13 b01=1.000000b11=2.0000001高斯消元法1高斯消元法b2=3.000000请输入矩阵阶数n: 蓍输入矩阵各项: 4 2 158 7 2 104 8 3 612 6 11 20请输入方程组的常数项:2LU分解2 7 7 3 xl=-1.00 xL2J=1
2、.00 xt3=-1.00 x4=1.003追赶法2 1-7121-5121-5121-512-5 H0=-4.166667Hl=l.333333 i2=-3.500000 1C3=0.66666?U4=-2.833333, =4/r =上科11H实脸分析:高斯消元法,是先消元,再回带的过程。由程序段可以发现,始终消去对角 线下方的元素。从消元过程可以看出,对于n阶线性方程组,只要各步主 元素不为零,通过n-1步消元,就可以得到一个等价的系数矩阵为上三 角形阵的方程组,然后再运用回代过程可求得原方程组的解。LU分解法,分解矩阵为单位下三角阵L与上三角阵U的乘积,然后解方程 组Ly=b,回代,解
3、方程组Ux=y。其中的L为n阶单位下三角阵、U 为上三角阵.对于追赶法,追赶法是合用于三角矩阵的线性方程组的求解的方法,并 不合用于其他类型矩阵。心得体会(碰到的问题和解决方法)本证实验难度比较式 在编译时经常出现各种错误程序代码也比较繁琐谏深感 觉到自己的上机操作能力有限,应加强自己的编程能力,以后要继续努力。实验名称实验三线性方程组的迭代求解实验目的和规定使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。jlO不一“一2巧=72( 一巧 +10 巧 -2 巧=83一天一巧+54=42实验内容设线性方程组Ax = b的系数矩阵A可逆,且主对角元素a It, a22, ,a而均不为零,
4、令D=d i ag (an, a22, , a nn)并将A分解成A=(A-D) + D从而线性方程组可写成Dx=(D-A) x+b则有迭代公式x(k+l) = B 1 x ( k )+fl其中,B 1 =I-D-1 A, f l = D-lbo重要仪器设备台式或笔记本计算机实验记录(写出实验内容中的程序代码和运营结果)(可分栏或加页)雅可比迭代法# includ e #in c 1 udettdefine n 3v o id f (float *b, f 1 oa t x1) f 1 o at y n+ 1 = 0,0, 0, 1;int i , j, k ;d o k=0;for (i =
5、0; i n+ 1 ; i+ + )x i =yi;f or(i=0; in; i +)y Li =0;f or( j =0; jn+ 1 ; j+)y i+=*(b+(n+D *i+j )*x j ;for (i=0; in; i + + )if (fab s(y i -xi ) = 0.5e- 3 ) k +;if(k=3) bre a kwh i le (1);for (i=0; i n ; i+)prin t f (y % d =% f n, i, y i ) ; mai n ()float bn n+l= 0,0. 1, 0. 2,0. 72, 0. 1,0,0. 2 , 0 . 8
6、 3,0.2,0. 2, 0 , 0. 84);flo a t x n+l = 0, 0 , 0,1;f (b 0 , x ) ;)高斯一赛德尔迭代法#include i o st r e am”#include i o mani p ”usi n g nam e sp a ce std;i n t main()i n t i J, k =(),m, n ;double e 1, e2= 0 .0;co u tvv”请输入精度e: H ;,ci n el;coutvv”请输入系数矩阵行数::dc i nm;coutvv”请输入系数矩阵列数:”;i nn;c outendl;dou b I e
7、(*a) =new double *m; 生成二维动态数组o r(i=0; i=m;i+)(g a i =new d o ubl e n;),d o ubl e (*b) =new dou b le m;ddouble (* x) = new d oubl e nJ;cout 请输入系数矩阵:vVendl;cout ” - - 一n e ndl;f o r(i n t num 1 =0;numlm;n u ml+)。f or(int n um 2 =0;num2a n um 1 n u m2;gcoutvve n d 1 ;cout ”输入的系数矩阵为了VVendl; dfor (in t n
8、u m 3 =0; num3m; num3+) gfo r (in t n u m 4 =0;num4n;num4+)(dcoutanum3num 4 H;co u tendl;c out- - - - -Mendl;o c outvv”请输入矩阵 b: ne n dl;coutVv ” -.一-一V Vendl;f o r( i n t num 5 = 0 ;num5b Enum5;)cout ”输入的矩阵b为:VV e nd 1 ;dfor(int n u m6=0; n um6m;num6+)(cout b nu m6n M;)cou t endl;c o u t H-11 V V en
9、d);for(i n t num7=0;num7n;num 7 + ),(,x num7=0.00 0 0;,do(,c o Utvv第Vv k Vv次迭代值:“;de2=0.0;for(i= 0 ; i m; i+) double sum = 0.0;6 forQ=0; j=0?(x i )-1 1: tl-(x i);de2=(e2=t2?e 2 : t2);c outset p r ecisi o n( 8 )xiH c o u tendl;,k+ ; whi 1 e(e2=e 1 &k3 0 );虱o utV V”共迭代了“ Vv k vV次del e tea;del e te b;d
10、elet e x; r et u rn 0 ;实验结果和分析1雅克比迭代k0=l.099811&U=1.199811 &23=1.299777信按任意键继续一.2高斯一一赛德尔迭代请输入系数矩阵:10 -1 -2-1 10 -2-1 -1 5请输入矩阵b,7.2 8.3 4.2值值值值fi:值值值次 KK-弋代弋代弋M-8 啾欹欲漱欹滋的 第 电r2ly.3l4ly5说曾士值值值值fi:值值值次 KK-弋代弋代弋M-8 啾欹欲漱欹滋的 第 电r2ly.3l4ly5说曾士0.721.04308 1.0931295 1.0991265 1.0998904 1.0999862 1.0999983 1
11、.09999980.9021.1671881.1957237 1.1994668 1.1999328 1.1999915 1.1999989 1.1999999 16441.28205361.2977706 1.2997187 1.2999646 1.2999956 1.2999994 1.2999999实验分析:使用这两种方法都可以求出方程的解,高斯赛德尔迭代法所需 的迭代次数比雅克比迭代少,可以更早的达成精度规定。但是 雅克比的时效性要比高斯赛德尔的好。心得体会(碰到的问题和解决方法)本次实验,让我对这两种方法更加理解,在编程操作上也更加纯熟,此后继续努力, 不断丰富自己的知识,增强操作能
12、力。实验名称实验四 代数插值和最小二乘法拟合实验目的和规定1使用拉格朗日插值法或牛顿插值法求解:已知f( X)在6个点的函数值如下表所 示,运用插值方法,求f().5 9 6)的近似值。X0.4 00 . 550.6 50. 8 00.9 01.05f(X)0 .4 10. 5 7 80. 69 6().88 8 111. 0 26 51 .25386学生姓名实验成绩实验名称 实验一方程求根实验目的和规定(必填)熟悉使用、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择 上述方法中的两种方法求方程:二分法f(x) =x3+4x2 -10=0在1,2内的一个实根, 且规定满足精度I X
13、*-Xn| 0.5X1 O-代码 1 .二分法:#include# i n du d e#inc 1 ude n t main() ( dou b Ie a= 1.0, b=2.0; doubi e x, s ; wh i 1 e (1) (x =(a+ b )/2; =pow (x,3)+4*x*x-10;if(-0.0 00005 s & s 0.000005)(break;)e Ise i f ( s 0, a b,假如f(a+b) /2=0,该点即为零点;假如 f(a+b)/2 0,则区间(a, (a+b) / 2)内存在零点,(a +b)/2 W b ;返回重新循环,不断接近零点。通
14、过每次把f (x)的零点所在区间收缩一 半的方法,使区间内的两个端点逐步逼近函数零点,最终求得零点近似值。重要仪器设备台式或笔记本计算机实验记录(写出实验内容中的程序代码和运营结果)(可分栏或加页)075157522给定数据点(H , y),用最小二乘法拟合数据的多项式,并求平方误差。Xi0().50.60.70. 80.91. 011. 751. 962.192 . 442.713.00实验内容1设函数在区间a , b上n+1互异节点Xo, X 1 , , X n上的函数值分别为yo,yi,,y2求n次插值多项式p“(x),满足条 件Pn( X j)=yj, j= 0 , 1 , -, n令
15、Ln(x)=y olo(x) + y L( x )+-+ynln(x)= XYili(x)其中 1 0 ( X ), 1 1 (x) , ln(x)为以 X 0, Xi, , Xn 为节点的n次插值基函数,则Ln (x)是一次数不超过n的多项式,且满足Ln(xj) =Yj, L = 0, 1,,n再由插值多项式的唯一性,得Pn(X)=Ln(x)2 建立正规方程组: (EXijk)ak=L Xijy i , j=0, 1, -,n平方误差:I = E (Sakx i k-yi) 2对给定数据点(Xi , Yi)(i=0,l,,m),在取定的函数类 中,求p(x),使误差的平方和E2最小,E?=Z
16、 Ep(X i )-Yi #in c 1 u d e #i n cl u de #includ e #in c lude vo i d di f f e ren c e(flo a t * x ,float *y in t n )(ofloa t *f;in t k, i ;f=( f 1 o a t * )mall o c(n*s i zeof(fl oat);for(k=l;k=n;k+)(0 =ykl;for (i=0 ;ik;i+-F)of i+1 =(ni-yi)/(X k-xi);3yk=fk;叶dretur n; int m a in()(i n t i,n;float x 2
17、0 ,y 20,xx,yy;pr i n t f(请输入数据个数n: ”);o从几何意义上讲,就是寻求与给定点(Xi, Yi) (i =0, 1,m)的距离平 方和为最小的曲线y=p( x )。函数p (x)称为拟合函数或最小二乘解,求拟合函 数p(x)的方法称为曲线拟合的最小二乘法。得到的两个关于a 0、al为未知数的两个方程组,解这两个方程组得出:a0= ( E Yi )/ m al (LX i ) / ma 1 = mZXi Y i - (SXi ZYi) / mEXi2 - (EXi)2 )即最终的拟合多项式各项系数重要仪器设备台式或笔记本计算机实验记录(写出实验内容中的程序代码和运营
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 计算机 数值 方法 实验 报告
限制150内