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

時間 2021-09-15 07:55:36

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;}

三元一次方程組的詳細解法,三元一次方程組怎麼解?

這種方程的最基本思路就是消元。5x 4y 4z 13 1 2x 7y 3z 19 2 3x 2y z 18 3 先看各方程的係數。通過 3 方程的乘3.再和 2 方程相減。能消去z再通過 3 方程乘4,和 1 方程相加。消去z此後兩個方程只有x,y兩個未知數。應該會解了吧。同理。再通過消元繼續求。算...

三元一次方程組

1解 y 2x 7代入5x 3y 2z 2得5x 6x 21 2z 2 合併 11x 2z 233x 4z 4 轉換為 z 3 4x 1 代入 11x 2z 23得 11x 解得x 2代入 y 2x 7 解得y 3 x 2代入3x 4z 4 解得z 2解 4x 9y 12 1 3y 2z 1 2 7...

求解三元一次方程組,求解一個三元一次方程組

題目錯了.x y z 0 x y 0 2式相加得到 2x z 0就是第三個式子 所以就是2個式子要解3個未知數.解的數量是不定的 這有點不妥 由x y z 0和x y 0可以推出2x z 0所以只有2條方程,解不出3個根 所以有無數個根 x y 1,z 2是其中的特解 紫鬱孤月 由x y 0得 x ...