怎么用C语言解多元一次方程?需要得到最合适的解。

Python011

怎么用C语言解多元一次方程?需要得到最合适的解。,第1张

多元一次方程, 需要建方程组,解线性方程组得解。

有几个变量就需要几个方程。

解线性方程组的方法很多,例如高斯消去法。

“最合适的解” -- 什么叫最合适,要用一个一个方程描述/写出来。

方程个数少于变量个数时得无穷个解。

嵌套,并且,下面是个小例子,可能有助于你。。。

int m,n

/*

* 此例实现二元二次方程求解。

* 应用题为:100个和尚,100个苹果,刚好吃完。

* 大和尚每人吃三个苹果,小和尚三人伙吃一个苹果。

* 求大和尚和小和尚各有多少!

* &&n*3+m/3=100

* &&m+n=100

*/

for (n = 0n <(int)(100/3)n++) //定义大和尚在100/3以内。

{

for (m = 0m <(int)(100)m++) //按理应定义小和尚在100*3以内,但不可能超过100,所以定义小和尚在100以内。

{

if (n+m==100 &&n*3+m/3==100) //n+m=100定义和尚,n*3+m/3=100定义苹果。

{

Console.WriteLine("大和尚有{0}人,小和尚有{1}人。",n,m)//输出结果。

}

}

}

Console.ReadKey()

//使用编译器 visual c++6.0

/*用C语言编程解下面这样一个方程:

a +b +c=1

a*x +b*y +c*z=m1

a*x*x +b*y*y +c*z*z=m2

a*x*x*x +b*y*y*y +c*z*z*z=m3

a*x*x*x*x +b*y*y*y*y +c*z*z*z*z=m4

a*x*x*x*x*x +b*y*y*y*y*y +c*z*z*z*z*z=m5

其中,m1、m2、m3、m4、m5是已知的,a、b、c、x、y、z是要求解的,不知道用c怎么求解,请高手指教。

*/

#include <iostream.h>

void main(void)

{

long int m1,m2,m3,m4,m5//装已知的数

long int *m[5]={&m1,&m2,&m3,&m4,&m5}

long int a,b,c,x,y,z

a=b=c=x=y=z=0//装未知的数并初始化

for(int p=0p<5p++)

{

cout<<"请输入已知数"<<p<<"\n"

cin>>*(m[p])

}//输入 M1 M2 M3 M4 M5

int luoji=1//逻辑判断装置

//a、b、c、x、y、z

for(luojia++)

{

for(luojib++)

{

for(luojic++)

{

for(luojix++)

{

for(luojiy++)

{

for(luojiz++)

{

if(

luoji=! (

(a+b+c==1)&&

(a*x+b*y+c*z==m1)&&

(a*x*x+b*y*y+c*z*z==m2)&&

(a*x*x*x+b*y*y*y+c*z*z*z==m3)&&

(a*x*x*x*x+b*y*y*y*y+c*z*z*z*z==m4)&&

(a*x*x*x*x*x+b*y*y*y*y*y+c*z*z*z*z*z==m5)

)

)

{

cout<<"正确答案如下:"<<a<<"\n"<<b<<"\n"<<c<<"\n"<<x<<"\n"<<y<<"\n"<<z<<"\n"

cout<<"程序运行完毕"

}

}

}

}

}

}

}

}