- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值分析-高斯消元法
数值分析-牛顿迭代法 实验报告 实验内容和要求 用列主元高斯消去法解线性方程组Ax=b 方程1: 3.016.031.991.274.16-1.230.987-4.819.34 x1x2x2=111; 方程2:3.006.031.991.274.16-1.230.990-4.819.34 x1x2x2=111; 算法说明 设Ax=b。本算法用A的具有行交换的列祖元素消去法,校园结果冲掉A,乘数mij冲掉aij,计算解x冲掉常数项b,行列式存放在det中。 det←1 对于k=1,2,…,n-1 按列选主元 aij,k=maxkjn aik 如果aij,k=0,则计算停止(det(A)=0) 如果aij,k=k,则转(4) 换行:akj aij,k(j=k,k+1,……,n) bk bik det←-det 消元计算 对于i=k+1,……,n aik←mik=aik/akk 对于i=k+1,……,n aij←aij-mik*akj bi←bi-mik*bk det←akk*det 如果ann=0,则计算停止(det(A)=0) 回带求解 bn←bn/ann 对于i=n-1,…,2,1 bi←(bi-j=i+1naij*bj)/aii det←ann*det 源程序 #include stdio.h #includeconio.h #include math.h #define max_dimension 20 //定义最大阶数为20 int n; static float a[max_dimension][max_dimension]; static float b[max_dimension]; static float x[max_dimension]; void main() { int I,j,d,row; float temp; float known_items; float l[max_dimension][max_dimension]; printf(请输入方程的阶数 :); //输入矩阵阶数 scanf(%d,n); printf(\n); for (i=0; in; i++) { printf(请输入第 %d 的系数:,i+1); //矩阵输入 for (j=0; jn; j++) { scanf(%f,a[i][j]); } printf(\n); } printf(请输入常数项: ); //常数输入 for (i=0; in; i++) scanf(%f,b[i]); for (i=0; in; i++) //计算增广矩阵 { for (j=0; jn; j++); } for (d=0; dn-1; d++) { row=d; for (i=d+1; in; i++) //查找最大元素所在行 { if (fabs(a[i][d])fabs(a[row][d])) row=i; } if (row!=d) { for (j=d; jn; j++) { temp=a[row][j]; a[row][j]=a[d][j]; a[d][j]=temp; } temp=b[row]; b[row]=b[d]; b[d]=temp; } for (i=d+1; in; i++) { l[i][d]=-a[i][d]/a[d][d]; for (j=d; jn; j++) { a[i][j]=a[i][j]+a[d][j]*l[i][d]; } b[i]=b[i]+b[d]*l[i][d]; } } for (i=0; in; i++) //计算上三角矩阵 { for (j=0; jn; j++); } printf(\n); for (i=n-1; i-1; i--) { known_items=0; for (j=1; jn-i; j++) { known_items=known_items+a[i][i+j]*x[i+j]; } x[i]=(b[i]-known_items)/a[i][i]; } printf(X的值分别为 :\n); for (i=0; in; i++) printf(%.5f ,x[i]);//输出x的值 printf(\n); getch(); } 实验结果 方程1: x1=1592.22119 x2=-631.76123 x3=-493.50037 方程2: x1=119.52600 x2=-47.14207 x3=-36.83984 说明与分析 在高斯消去法运算的过程中,如果出现 (A(i,i))的绝对值等于零或过小的情况,则会导致矩阵元素数量级严重增长和舍入误差的扩散,使得最后的计算结果不可靠,所以需先对矩阵进行变换在计算。
文档评论(0)