导航:首页 > 编程语言 > 并行的高斯消去c程序

并行的高斯消去c程序

发布时间:2023-05-12 13:10:52

㈠ Gauss消去法C语言程序

void gauss(double a[n][n+1],double x[n])
{

int i,j,k;
double temp,s,l;

for(i=0;i<n-1;i++)
{
//猛余选列主元
k=i;
for(j=i+1;j<n;j++)
{ if(fabs(a[j][i])>fabs(a[k][i]))
k=j;
}

//换行
if(k!=i)
for(j=i;j<=n;j++)
{
temp=a[i][j];
a[i][j]=a[k][j];
a[k][j]=temp;
}

/此镇/消元
for(j=i+1;j<n;j++)
{
l=1.0*a[j][i]/a[i][i];
for(k=0;k<枝扒滚n+1;k++)
a[j][k]=a[j][k]-a[i][k]*l;
}
print(a);
printf("\n");

}
print(a);
//回代
x[n-1]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
s=0.0;
for(j=i;j<n;j++)
{
if(j==i)
continue;
s+=a[i][j]*x[j];

}
x[i]=(a[i][n]-s)/a[i][i];
}
}

㈡ 用c语言实现高斯消去法,解三元一次方程组。求具体程序!!

#include<iostream>

#include<cmath>

usingnamespacestd;

#defineMAX50

voidinput(doublea[MAX][MAX+1],intn)

{

cout<<"输入原方程组的增广矩阵"<<endl;

for(inti=0;i<n;i++)

for(intj=0;j<n+1;j++)

cin>>a[i][j];

}

voidoutput(doublex[],int稿灶n)

{

cout<<"Gauss消去法得到的原方程组的解为"<<endl;

for(intk=0;k<n;k++)

cout<<x[k]<<"";

}

intmain()

{

doublea[MAX][MAX+1],x[MAX],sum,max,t;

intn,i,j,k,max_i;

cout<<"输入原方程组的阶"<<endl;cin>>n;

input(a,n);

for(k=0;k<n-1;k++)//选主元素

{max=a[k][k];

max_i=k;

for(i=k+1;i<n;i++)

if(fabs(a[i][k])>fabs(max))

{

max=a[i][k];

max_i=i;

}

if(max==0)

break;

if(max_i!=k)//交换两行

for(j=k;j<n+1;j++)

{

t=a[k][j];

a[k][j]=a[max_i][j];

键罩扮a[max_i][j]=t;

}

for(i=k+1;i<n;i++)

{

a[i][k]=a[i][k]/-a[k][k];

for(j=k+1;j<n+1;j++)

a[i][j]=a[i][j]+a[i][k]*a[k][j];

闷培}//消元

}

if(max==0)cout<<"原方程组无解"<<endl;

else

{

for(k=n-1;k>=0;k--)

{

sum=0;

for(j=k+1;j<n;j++)

sum=sum+a[k][j]*x[j];

x[k]=(a[k][n]-sum)/a[k][k];

}//回代

output(x,n);

cout<<endl;

}

return0;

}

阅读全文

与并行的高斯消去c程序相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接