列主元素消去法.doc

上传人:b****2 文档编号:1408237 上传时间:2022-10-22 格式:DOC 页数:9 大小:180.64KB
下载 相关 举报
列主元素消去法.doc_第1页
第1页 / 共9页
列主元素消去法.doc_第2页
第2页 / 共9页
列主元素消去法.doc_第3页
第3页 / 共9页
列主元素消去法.doc_第4页
第4页 / 共9页
列主元素消去法.doc_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

列主元素消去法.doc

《列主元素消去法.doc》由会员分享,可在线阅读,更多相关《列主元素消去法.doc(9页珍藏版)》请在冰豆网上搜索。

列主元素消去法.doc

2012-2013

(1)专业课程实践论文

列主元素消去法

范宁:

0818180102,R数学08-1班

夏之秋:

0818180110,R数学08-1班

一、算法理论

列主元素消去法既是选主元高斯消去法的一种,也是实际计算中常用的部分选主元消去法。

列主元素消去法则是对完全主元素消去法的又一次改进。

列主元素消去法在完全主元素消去法的基础上减少了在选主元素时所要花费的一定的计算时间。

设有线性方程组

其中,为非奇异矩阵。

方程组的增广矩阵为

首先在的第1列选取绝对值最大的元素作为主元素,即选择

然后交换的第1行与第行(交换后增广矩阵为简单起见仍记为,其元素仍记为)。

经过第1次消元计算得到与原方程组等价的方程组

其中

上述过程可记为

重复上述计算过程,现假设已完成第步的选主元素过程,交换两行并进行消元计

此时约化为

其中的元素仍记为,的元素仍记为.

第步选主元素(在右下角方阵的第1列内选),即确定,使

  交换第行与行的元素,再进行消元计算,最后将原线性方程组化为

回代可求解得

二、算法框图

输出迭代失败标志

交换中两行

输入(增广矩阵)

开始

输出奇异标志

结束

三、算法程序

#include

#include

#include

#include

#definemax_dimension20

intn;

staticfloata[max_dimension][max_dimension];

staticfloatb[max_dimension];

staticfloatx[max_dimension];

voidmain()

{

inti;

intj;

intd;

introw;

floattemp;

floatknown_items;

floatl[max_dimension][max_dimension];

system("cls");

printf("PleaseInputMatrixjieshu:

");

scanf("%d",&n);

printf("\n");

printf("PleaseInputMatrixFactors:

");

printf("\n");

for(i=0;i

{

printf("inputdi%dhangdezhi:

",i+1);

for(j=0;j

{

scanf("%f",&a[i][j]);

}

printf("\n");

}

printf("PleaseInputChangshuxiang:

");

for(i=0;i

scanf("%f",&b[i]);

printf("TheAugmented(zenguang)Matrixis:

\n\n");

for(i=0;i

{

for(j=0;j

printf("%f",a[i][j]);

printf("%f",b[i]);

printf("\n");

}

printf("\n");

for(d=0;d

{

row=d;

for(i=d+1;i

{

if(fabs(a[i][d])>fabs(a[row][d]))

row=i;

}

if(row!

=d)

{

for(j=d;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;i

{

l[i][d]=-a[i][d]/a[d][d];

for(j=d;j

{

a[i][j]=a[i][j]+a[d][j]*l[i][d];

}

b[i]=b[i]+b[d]*l[i][d];

}

}

printf("TheshangsanjiaozenguangMatrixafterpredigestionis:

\n\n");

for(i=0;i

{

for(j=0;j

printf("%f",a[i][j]);

printf("%f",b[i]);

printf("\n");

}

printf("\n");

for(i=n-1;i>-1;i--)

{

known_items=0;

for(j=1;j

{

known_items=known_items+a[i][i+j]*x[i+j];

}

x[i]=(b[i]-known_items)/a[i][i];

}

printf("TheRootXis:

\n\n");

for(i=0;i

printf("%.5f",x[i]);

printf("\n\n");

getch();

}

四、算法实现

例1.求解方程组:

用四位浮点数进行计算,精确解舍入到四位有效数字为

解:

运行程序

(1)显示PleaseInputMatrixjieshu:

输入的值为3,回车。

(2)显示inputdi1hangdezhi:

输入,回车。

(3)显示inputdi2hangdezhi:

输入,回车。

(4)显示inputdi3hangdezhi:

输入,回车。

(5)显示PleaseInputChangshuxiang:

输入,回车。

(6)显示结果:

例2.用列主元素消去法解该方程

解:

运行程序

(1)显示出PleaseInputMatrixjieshu:

输入的值为4,回车。

(2)显示inputdi1hangdezhi:

输入回车。

(3)显示inputdi2hangdezhi:

输入回车。

(4)显示inputdi3hangdezhi:

输入回车。

(5)显示inputdi4hangdezhi:

输入回车。

(6)显示出PleaseInputChangshuxiang:

输入,回车。

(7)显示结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1