導航:首頁 > 編程語言 > 並行的高斯消去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

友情鏈接