非线性方程解析解

来源:百度知道 编辑:UC知道 时间:2024/05/29 10:44:24
-x0*cos(b)*cos(c)-y0*(-sin(a)*cos(b)*cos(c)-cos(a)*sin(c))-z0*(-cos(a)*cos(b)*cos(c)+sin(a)*sin(c))=0
-x0*cos(b)*sin(c)-y0*(-sin(a)*cos(b)*sin(c)+cos(a)*cos(c))-z0*(-cos(a)*cos(b)*sin(c)-sin(a)*cos(c))=0
-x0*cos(b)-y0*sin(a)*cos(b)-z0*cos(a)*cos(b)=sqrt(x0^2+y0^2+z0^2)

其中x0,y0,z0已知,但不是某个具体的常数。想解出这个方程的“解析解”,a,b,c用x0,y0,z0的反三角函表示。用matlab或mathmatics具体如何编程,希望给出可以运行的源代码。
急用!!!!!在线等!!!

-x0*Cos[b]*Cos[c] - y0*(-Sin[a]*Cos[b]*Cos[c] - Cos[a]*Sin[c]) - z0*(-Cos[a]*Cos[b]*Cos[c] + Sin[a]*Sin[c]) == 0, (1)
-x0*Cos[b]*Sin[c] - y0*(-Sin[a]*Cos[b]*Sin[c] + Cos[a]*Cos[c]) - z0*(-Cos[a]*Cos[b]*Sin[c] - Sin[a]*Cos[c]) == 0, (2)
-x0*Cos[b] - y0*Sin[a]*Cos[b] - z0*Cos[a]*Cos[b] == Sqrt[x0^2 + y0^2 + z0^2] (3)

用mathematica直接解是不行的.下面是不借助软件的解答.可以借助软件做一些化简变形工作

分三种情况
记r==Sqrt[x0^2 + y0^2 + z0^2]

第一种情况:cos[c]==0时,sin[c]==1,原方程等价于下面的方程组:
y0* Cos[a] - z0* Sin[a]== 0,
-x0*Cos[b] + y0*Sin[a]*Cos[b] + z0*Cos[a]*Cos[b] == 0,
-x0*Cos[b] - y0*Sin[a]*Cos[b] - z0*Cos[a]*Cos[b] == Sqrt[x0^2 + y0^2 + z0^2]
由第一个方程可得 Tan[a]==y0/z0(假设z0不等于0)
第二个方程加到第三个方程上可得
- 2*x0*Cos[b] == r,容易得到Cos[b] == -r/(2*x0).(假设x0不等于0)

第二种情况:sin[c]==0时,cos[c]==1,原方程等价于下面的方程组:
- x0*Cos[b] + y0*Sin[a]*Cos[b] + z0*Cos[a]*Cos[b] == 0,
- y0*Cos[a] + z0*Sin[a] == 0,
- x0*Cos[b] - y0*Sin[a]*Cos[b] - z0*Cos[a]*Cos