解线性方程组.doc

上传人:枫** 文档编号:560000346 上传时间:2024-03-02 格式:DOC 页数:18 大小:356.50KB
返回 下载 相关 举报
解线性方程组.doc_第1页
第1页 / 共18页
解线性方程组.doc_第2页
第2页 / 共18页
解线性方程组.doc_第3页
第3页 / 共18页
解线性方程组.doc_第4页
第4页 / 共18页
解线性方程组.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《解线性方程组.doc》由会员分享,可在线阅读,更多相关《解线性方程组.doc(18页珍藏版)》请在金锄头文库上搜索。

1、#include#include#define n 3/2-1顺序解线性方程组void Cgauss(float ann,float bn,float xn)int i,j,k;float sum=0.0;for(k=0;kn;k+)for(j=k+1;jn;j+)/归一化 if(akk)akj/=akk; / printf(a%d%d=%fn ,k,j,akj);bk/=akk;akk=1;for(i=k+1;in;i+)/消元for(j=k+1;j=0;i-)sum=0.0;for(j=n-1;ji;j-)sum=sum+aij*xj;xi=bi-sum;/2-2顺序解线性方程组void

2、Cgauss1(float ann,float bn,float xn)int i,j,k;float temp,sum=0.0;for(k=0;kn;k+)for(i=k+1;ifabs(akk)&akk!=0)for(j=k;jn;j+)temp=akj;akj=aij;aij=temp;temp=bk;bk=bi;bi=temp;for(j=k+1;jn;j+)/归一化 akj=akj/akk; bk=bk/akk;akk=1;for(i=k+1;in;i+)for(j=k+1;j=0;i-)sum=0.0;for(j=n-1;ji;j-)sum=sum+aij*xj;xi=bi-sum

3、;/2-3顺序解线性方程组void Cgauss2(float ann,float bn,float xn)int i,j,is,jsn,k;float temp,max,t,sum=0.0;for(k=0;kn-1;k+)max=0.0;for(i=k;in;i+)for(j=k;j max)max=t,jsk=j,is=i; if(max+1.0=1.0) printf(矩阵异常!);elseif(jsk!=k)/列交换,每次列交换都是全部交换,因此i是从0开始for(i=0;in;i+) temp=aik,aik=aijsk,aijsk=temp;if(is!=k)/行交换for(j=k

4、;jn;j+) temp=akj,akj=aisj,aisj=temp; temp=bk,bk=bis,bis=temp;for(j=k+1;jn;j+)/归一化 akj=akj/akk;bk=bk/akk;akk=1;for(i=k+1;in;i+)/消元for(j=k+1;j=0;i-)sum=0.0;for(j=n-1;ji;j-)sum=sum+aij*xj;xi=bi-sum;void main()int i,j;float ann=1,2,-2,2,1,2,3,0,4, bn=2,3,1,xn;printf(方程各元素如下:n);for(i=0;in;i+)for(j=0;jn;j

5、+)printf(%.2f ,aij);printf(n);printf(方程常数依次为:n);for(i=0;in;i+)printf(%.2f ,bi);printf(n); printf(-顺序解线性方程组-n);Cgauss(a,b,x);printf(-列选元解线性方程组-n);Cgauss1(a,b,x);printf(-全选组元解线性方程组-n);Cgauss2(a,b,x);printf(方程解为:n);for(i=0;in;i+)printf(x%d=%.2f ,i,xi);printf(n); /2-4 Crout分解法解线性方程组#include#include#incl

6、ude#define n 3void Crout(float ann,float bn,float xn)int r,i,k;float Lnn, Unn,yn,sum;for(i=0;in;i+) /L的第一列Li0=ai0;for(i=0;in;i+) /U的第一行U0i=a0i/L00;Uii=1;for(r=1;rn-1;r+)for(i=r+1;in;i+)sum=0.0;for(k=0;kr;k+)sum+=Lrk*Uki;Uri=(ari-sum)/Lrr;for(r=1;rn;r+)for(i=r;in;i+)sum=0.0;for(k=0;kr;k+)sum+=Lik*Ukr

7、;Lir=air-sum;y0=b0/L00;for(r=1;rn;r+)sum=0.0;for(i=0;ir;i+)sum+=Lri*yi;yr=(br-sum)/Lrr;for(i=0;i=0;r-)sum=0.0;for(i=r+1;in;i+)sum+=Uri*xi;xr=yr-sum;void main()int i,j;float ann=1,-1,3,2,-4,6,4,-9,2, bn=1,4,1,xn;printf(方程各元素如下:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%.2f ,aij);printf(n);printf(方程常数依次为:

8、n);for(i=0;in;i+)printf(%.2f ,bi);printf(n);Crout(a,b,x);/*printf(需解线性方程组消元后为:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%.2f ,aij);printf(n);printf(方程常数消元后为:n);for(i=0;in;i+)printf(%.2f ,bi);printf(n);*/printf(方程解为:n);for(i=0;in;i+)printf(x%d=%.2f ,i,xi);printf(n);/2-5 Doolittle分解法解线性方程组#include#include#include#define n 3void Doolittle(float ann,float bn,float xn)int r,i,k,j;float Lnn=0, Unn=0,yn=0,sum; /*初始化矩阵l*/ fo

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

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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