数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx

上传人:b****4 文档编号:6291079 上传时间:2023-05-06 格式:DOCX 页数:12 大小:43.78KB
下载 相关 举报
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第1页
第1页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第2页
第2页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第3页
第3页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第4页
第4页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第5页
第5页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第6页
第6页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第7页
第7页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第8页
第8页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第9页
第9页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第10页
第10页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第11页
第11页 / 共12页
数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx

《数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx》由会员分享,可在线阅读,更多相关《数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx(12页珍藏版)》请在冰点文库上搜索。

数值分析列主元高斯消去顺序高斯平方根法追赶法DOCWord格式.docx

{8,6,-5,-3,6,5,0,1,0,0},

{4,2,-2,-1,3,2,-1,0,3,1},

{0,-2,1,5,-1,3,-1,1,9,4},

{-4,2,6,-1,6,7,-3,3,2,3},

{8,6,-8,5,7,17,2,6,-3,5},

{0,2,-1,3,-4,2,5,3,0,1},

{16,10,-11,-9,17,34,2,-1,2,2},

{4,6,2,-7,13,9,2,0,12,4},

{0,0,-1,8,-3,-24,-8,6,3,-1}

};

floatb[10]={5,12,3,2,3,46,13,38,19,-21};

floatx[10]={0};

floatAik,S,temp;

inti,j,k;

intsize=10;

for(k=0;

k<

size-1;

k++)

{

 

if(!

A[k][k])

return-1;

for(i=k+1;

i<

size;

i++)

Aik=A[i][k]/A[k][k];

for(j=k;

j<

j++)

A[i][j]=A[i][j]-Aik*A[k][j];

}

b[i]=b[i]-Aik*b[k];

printf("

A[]\n"

);

for(i=0;

for(j=0;

%f"

A[i][j]);

\n"

b[]\n"

b[i]);

\n\n"

x[size-1]=b[size-1]/A[size-1][size-1];

for(k=size-2;

k>

=0;

k--)

S=b[k];

for(j=k+1;

S=S-A[k][j]*x[j];

x[k]=S/A[k][k];

x[]=\n"

x[i]);

return0;

}

②列主元消去法

floatmax;

intcol;

max=fabs(A[k][k]);

col=k;

for(i=k;

if(max<

fabs(A[i][k]))

max=fabs(A[i][k]);

col=i;

temp=A[col][j];

A[col][j]=A[k][j];

A[k][j]=temp;

temp=b[col];

b[col]=b[k];

b[k]=temp;

(2)对称正定线性方程组

平方根法:

#include<

#definen8

floatA[8][8]=

{4,2,-4,0,2,4,0,0},

{2,2,-1,-2,1,3,2,0},

{-4,-1,14,1,-8,-3,5,6},

{0,-2,1,6,-1,-4,-3,3},

{2,1,-8,-1,22,4,-10,-3},

{4,3,-3,-4,4,11,1,-4},

{0,2,5,-3,-10,1,14,2},

{0,0,6,3,-3,-4,2,19}

floatg[8][8]={0};

floatb[8]={0,-6,6,23,11,-22,-15,45};

floatx[8]={0};

floaty[8]={0};

intk,m,i,sq;

n;

floatp=0,q=0,s=0;

for(m=0;

m<

=k-1;

m++)

p=p+A[k][m]*A[k][m];

g[k][k]=sqrt(A[k][k]-p);

A[k][k]=g[k][k];

q=0;

q=q+A[i][m]*A[k][m];

g[i][k]=(A[i][k]-q)/A[k][k];

A[i][k]=g[i][k];

s=0;

s=s+A[k][m]*y[m];

y[k]=(b[k]-s)/A[k][k];

x[n-1]=y[n-1]/A[n-1][n-1];

for(k=n-2;

floatsum=0;

for(m=k+1;

sum=sum+A[m][k]*x[m];

x[k]=(y[k]-sum)/A[k][k];

for(sq=0;

sq<

sq++)

x[sq]);

(3)三对角线性方程组

追赶法

#definen10

floata[10]={4,4,4,4,4,4,4,4,4,4};

floatc[9]={-1,-1,-1,-1,-1,-1,-1,-1,-1};

floatd[9]={-1,-1,-1,-1,-1,-1,-1,-1,-1};

floatb[10]={7,5,-13,2,6,-12,14,-4,5,-5};

floatx[10]={0};

floaty[10]={0};

floatarf[10]={0};

floatbt[9]={0};

arf[0]=a[0];

inti;

i<

n-1;

i++)

bt[i]=c[i]/arf[i];

arf[i+1]=a[i+1]-d[i+1]*bt[i];

//printf("

%f%f\n"

bt[i],arf[i+1]);

y[0]=b[0]/arf[0];

%f\n"

y[0]);

for(i=1;

y[i]=(b[i]-d[i]*y[i-1])/arf[i];

y[1]);

x[n-1]=y[n-1];

for(i=n-2;

i>

i--)

x[i]=y[i]-bt[i]*x[i+1];

%lf"

数值结果:

追赶法:

对实验计算结果的讨论和分析:

x1~x10的绝对误差:

0.000001,-0.000001,0.000001,0,0.000001,0,0.000002,0,0,0

x1~x10的相对误差:

0.000001,0.000001,-1,0,0.0000005,0,0.00000067,0,0,0

误差很小,基本可以忽略。

高斯消去法由消元和回代两个过程组成。

消元过程就是将原增广矩阵[A,b]中矩阵A的部分约化为上三角矩阵,然后就可以进行回代过程,从最后一个方程开始,依次求出xn,xn-1一直到x1.到这里,顺序高斯消去法完成。

经过计算,列主元高斯消去法的误差也很小,它是高斯消去法的改进,因为顺序消去法的主元素如果等于0,消元过程就无法进行,如果它很小,也会导致它做除数的误差会增加,导致精度下降,因此在消元过程中选择绝对值较大的元素作为主元素是必要的。

这就是列主元消去法。

误差为0,数值非常稳定。

平方根法适用于对称正定矩阵,将对称正定矩阵进行cholesky分解,A=GGT,原方程组等价于Gy=b.GTx=y.然后就能得到原方程组的解,计算量和存储量均减小了一般,这对于大矩阵来说是非常有利的。

追赶法误差也为0。

追赶法专门用来求解三对角方程组,当三对角矩阵A满足对角占优条件时,追赶法是数值稳定的。

追赶法具有计算程序简单,存贮少,计算量小的优点。

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2