導航:首頁 > 編程語言 > 運用列主元消去法編程

運用列主元消去法編程

發布時間:2024-11-20 01:10:21

Ⅰ 用列主元消去法,用c++編個程序

程序代碼如下:

double* Gauss(double **a,double *b)
{
int i,j,k,flag;
double temp;
double *x;
x=new double[n];
for(i=0;i<n-1;i++)
{
max=0;
flag=0;
for(j=i;j<n;j++)
{
if(a[j][i]<0)
temp=-a[j][i];
else
temp=a[j][i];
if(max<temp)
{
max=temp;
row=j;
flag=1;
}
}
if(max==0)
{
cout<<"此題不能用列主元消去法做"<<endl;
exit(0);
}
if(flag==1)
{
for(j=0;j<n;j++)
{
temp=a[i][j];
a[i][j]=a[row][j];
a[row][j]=temp;
}
temp=b[i];
b[i]=b[row];
b[row]=temp;
}
for(j=i+1;j<n;j++)
{
temp=1.0*a[j][i]/a[i][i];
for(k=i;k<n;k++)
a[j][k]=a[j][k]-temp*a[i][k];
b[j]=b[j]-temp*b[i];
}
if(a[n-1][n-1]==0)
{
cout<<"此題不能用列主元消去法做"<<endl;
exit(0);
}
}
for(i=0;i<n;i++)
{
b[i]=b[i]/a[i][i];
for(j=i+1;j<n;j++)
a[i][j]=a[i][j]/a[i][i];
a[i][i]=1;
}
for(i=n-2;i>=0;i--)
for(j=i;j>=0;j--)
{
b[j]=b[j]-b[i+1]*a[j][i+1];
a[j][i+1]=0;
}
for(i=0;i<n;i++)
x[i]=b[i];
return(x);
}

使用程序時在main函數中調用x=Gauss(a,b),a為系數矩陣頭指針,b為常數項頭指針,程序返回一個double類型的數組x[n]即為解集.

閱讀全文

與運用列主元消去法編程相關的資料

熱點內容
如何用塔式伺服器搭建nas 瀏覽:697
海島奇兵伺服器中斷55什麼意思 瀏覽:524
androidsdk22下載地址 瀏覽:294
intelrst驅動文件夾 瀏覽:922
幾台電腦共享一個加密狗 瀏覽:360
java獲取前一天的日期 瀏覽:188
五以內手指演算法視頻 瀏覽:580
伺服器與桌面如何切換窗口 瀏覽:94
微信介面配置信息php 瀏覽:49
php數組echo 瀏覽:98
文件夾有藍色東西 瀏覽:961
u盤顯示加密提示要格式化怎麼辦 瀏覽:543
centos命令行解析度 瀏覽:820
我的世界110命令 瀏覽:738
c語言編譯器IDEC語言編程 瀏覽:948
幫粉絲解壓的視頻 瀏覽:116
androidsdk路徑查看 瀏覽:483
什麼平板看pdf好 瀏覽:436
java定義成員變數 瀏覽:509
學完51單片機 瀏覽:519