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

運用列主元消去法編程

發布時間: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]即為解集.

閱讀全文

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

熱點內容
php存儲過程返回值 瀏覽:837
模板匹配演算法介紹 瀏覽:523
編程語言麻煩的代碼 瀏覽:134
icloud通訊錄如何導出到安卓 瀏覽:742
單片機做mp3 瀏覽:323
聯通營業廳app在哪裡人工服務 瀏覽:941
三相用電功率與導線的演算法公式 瀏覽:911
javapost編碼 瀏覽:529
雲伺服器巡檢表 瀏覽:671
androidapk無法啟動 瀏覽:245
安卓禁止應用安裝怎麼打開 瀏覽:694
hasp加密狗卸載 瀏覽:479
郵箱無法連接發件伺服器怎麼辦 瀏覽:317
手機打電話如何加密號碼 瀏覽:302
浪潮伺服器進pxe按什麼鍵 瀏覽:4
小能錄屏的伺服器地址是什麼意思 瀏覽:676
android文件操作許可權 瀏覽:599
華為演算法工程師面試題 瀏覽:945
雲開發和伺服器有什麼區別 瀏覽:128
鋼材的價格演算法 瀏覽:663