C 解三元一次方程組,用高斯消元法解三元一次方程組,C語言

2021-09-15 07:55:13 字數 2586 閱讀 3996

1樓:a萬事通

|||||||||||||||||||||||||||||||||||||

||| a1x+b1y+c1z=d1

||| a2x+b2y+c2z=d2

||| a3x+b3y+c3z=d3

|||||||||||||||||||||||||||||||||||||

一 a1a2x+b1a2y+c1a2y=d1a2 a式

a1a2x+b2a1y+c2a1z=d2a1 b式

a-b得

(b1a2-b2a1)y+(c1a2-c2a1)z=(d1a2-d2a1) c式

如果b1a2-b2a1=0或c1a2-c2a1=0則存在無窮多組解

二 a3a2x+b3a2y+c3a2y=d3a2 d式

a3a2x+b2a3y+c2a3z=d2a3 e式

d-e得

(b3a2-b2a3)y+(c3a2-c2a3)z=(d3a2-d2a3) f式

如果b3a2-b2a3=0或c3a2-c2a3=0則存在無窮多組解

求 c和f式組成的二元一次方程組

接著。。。。。。。。。。難道你還想不出來嗎 呵呵

2樓:匿名使用者

用三重迴圈就好了,但是關鍵是你要大概知道你的答案的精度,即在小數點後面多少位

用高斯消元法解三元一次方程組,c語言

3樓:耘熵

參閱我的文章

#include "stdafx.h" //vs 預編譯標頭檔案,其他系統請刪除

#include

#include

#include

#include

#include

//vs 2013 否決了 scanf 等函式,為了使用,加上下句。

//其他系統請刪除

#pragma warning(disable:4996)

int gaussjordanelimination(int n, const double *pcoef, double *pout);

//vs 主函式簽名格式。其他系統請改變簽名,如:

//int main()

int _tmain(int argc, _tchar* ar**)

, , };

double rs[3];

int i;

i = gaussjordanelimination(3, (double*)cf, rs);

printf("x1 = %lf, x2 = %lf, x3 = %lf\n", rs[0], rs[1], rs[2]);

system("pause"); //避免視窗一閃而退

return 0;

}//絕對值函式

__inline double _abs(double v)

//線性方程組列主元高斯消元法

//n 方程元數;pcoef 係數,必須以行主序方式存放的二維陣列;

//pout 長度為 n 的一維陣列(呼叫者負責維護),用於輸出資料

//返回值:0 成功,-1 無解,1 申請記憶體失敗, 2 不定解。

int gaussjordanelimination(int n, const double *pcoef, double *pout)

if (a > r)

}//開始消元

a = r * columns; //記住將主元的行地址偏移量,以提高程式執行效率

x = -pcf[a + r]; //要多次使用,記下她,以提高程式執行效率

if (x == 0) //主元居然為 0,純粹是想坑爹,豈能上當!

continue; //繼續後面的消元,以便最終判斷是無解還是任意解

for (i = r + 1; i < rows; i++)

}}//至此,pcf 方陣區已經處理成到直角三角形(直角在右上角)矩陣

//回代,將 pcf 方陣區處理成主對角線為 1,其他為 0 的矩陣

int columns_1 = c = columns - 1; //多次用到,提高效率

for (r = rows - 1; r >= 1; r--)

else

}pcf[b + columns_1] /= pcf[b + r];

pcf[b + r] = 1; //肯定為 1,不用計算。

y = -pcf[b + columns_1];

//回代

for (i = r - 1; i >= 0; i--)

}//處理第一行資料

pcf[columns_1] /= pcf[0];

pcf[0] = 1;

//至此,回代過程結束,pcf 矩陣的最後一列就是結果

//返回結果

for (r = 0; r < rows; r++)

pout[r] = pcf[r * columns + columns_1];

free(pcf);

return 0;}

三元一次方程組,三元一次方程組怎麼解?

設上坡x千公尺,平路y千公尺,下坡z千公尺 則x y z 3.3 1 x 3 y 4 z 5 51 60 x 5 y 4 z 3 53.4 60 所以20x 15y 12z 51 2 12x 15y 20z 53.4 3 2 3 8x 8z 2.4 x z 0.3 4 1 15 3 3x 5z 3....

三元一次方程組解法,怎樣解三元一次方程組

y 2x 7 1 5x 3y 2z 2 2 3x 4z 4 3 1 式變形為 2x y 7 4 2 2 得 10x 6y 4z 4 5 3 5 得 13x 6y 8 6 4 6 得 12x 6y 42 7 6 7 消去y得 25x 50 x 2代入 4 得 y 3 代入 3 得 z 1 2 綜上 x...

三元一次方程組一般有幾個解,三元一次方程組一共有多少個解

有的只有乙個解,比如這個三元一次方程組 x y z 22 3x y 0z 47 x 4z 2 解得x 14,y 5,z 3,這樣的方程只有乙個解。有的有無數個解,這種方程就是三元一次不定方程,即方程的數量小於3。比如x y z 6 2x 4 y z 20 解得x 2,當y 0時,z 4 y 1時,z...