Mathematica 有个复杂方程组解不出,Solve[{h*Cot[B]-(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=x,h*Cot[B]+(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=y,G*p*Sin[2B]*ArcTan[(2dh)/(h^2-d^2)]=a+b,G*p*( (Sin[B])^2*Log[((x-d)^2+h^2)/((x+d)^2+h^2)]+Sin[2B]*ArcTan[(2dh)/(x^2+
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 02:53:01
Mathematica 有个复杂方程组解不出,Solve[{h*Cot[B]-(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=x,h*Cot[B]+(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=y,G*p*Sin[2B]*ArcTan[(2dh)/(h^2-d^2)]=a+b,G*p*( (Sin[B])^2*Log[((x-d)^2+h^2)/((x+d)^2+h^2)]+Sin[2B]*ArcTan[(2dh)/(x^2+
Mathematica 有个复杂方程组解不出,
Solve[{h*Cot[B]-(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=x,
h*Cot[B]+(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=y,
G*p*Sin[2B]*ArcTan[(2dh)/(h^2-d^2)]=a+b,
G*p*( (Sin[B])^2*Log[((x-d)^2+h^2)/((x+d)^2+h^2)]+Sin[2B]*ArcTan[(2dh)/(x^2+h^2-d^2)]=a},{d,h,B,p}]
上式4个方程中:x,y,a,b都是已知的具体数,想求出d,h,B,p的表达式.(由于每次所取的x,y,a,b值都不同,所以没把具体数带入,但是好象太复杂了,计算了半天都没反映.)
我现在把方程做了改变,改变的方程组中,前两个方程和我提问时方程的前两个不同,其实是把原来的前两个方程做相互了加和减的运算,得到如下Solve[{h*2Cot[B]==-3,d^2+h^2==3.25,66.72*a*(Sin[B]^2*Log[(2.3452+d)/(2.3452-d)]+Sin[2*B]*ArcTan[2*d*h/(14.7856+h^2+d^2)] )==16.2098,66.72*a*ArcTan[2*d*h/(h^2-d^2)]==-84.8853},{a,B,h}]四个参数的求解我变成了3个,带入算后B的解析解形式(里面有d作为未知数)最简单,根据方程组的前两个方程可以得到:d=sqrt[(-9/(4*Cot[B]^2))+3.25]
,此式和刚才解出的B的解析式再联立,是不是就能解出B和d呢?十分感谢你的提示.如果有空帮我看看这题吧,是个关键的东西,弄不出来下面就没办法进行了.
Mathematica 有个复杂方程组解不出,Solve[{h*Cot[B]-(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=x,h*Cot[B]+(d^2+h^2+h^2*(Cot[B])^2)^(1/2)=y,G*p*Sin[2B]*ArcTan[(2dh)/(h^2-d^2)]=a+b,G*p*( (Sin[B])^2*Log[((x-d)^2+h^2)/((x+d)^2+h^2)]+Sin[2B]*ArcTan[(2dh)/(x^2+
你敲的括号似乎也有点问题,不改过来的话是会报错的.
我算了一下,输出的结果是这个:
Solve::tdep: The equations appear to involve the variables to be \
solved for in an essentially non-algebraic way. >>
还有:
Solve[{h Cot[B] - Sqrt[d^2 + h^2 + h^2 Cot[B]^2] == x,
h Cot[B] + Sqrt[d^2 + h^2 + h^2 Cot[B]^2] == y,
G p ArcTan[(2 dh)/(-d^2 + h^2)] Sin[2 B] == a + b,
G p Log[(h^2 + (-d + x)^2)/(h^2 + (d + x)^2)] Sin[B]^2 +
ArcTan[(2 dh)/(-d^2 + h^2 + x2)] Sin[2 B] == a}, {d, h, B, p}],就是把原来那个式子变了个形而已.
考虑到他说不能用简单的代数方法求解(其实Mathematica对很多问题都只能用数值方法做,比如说四阶以上的微分方程组),恐怕只有用别的办法了,比如说对具体的数字用数值解法做
如果你要用数值方法的话就不能用Solve命令了,得改成NSolve等的命令,具体可以看教程.简单地把数字代进去应该还是不行的.
那句英语的意思是计算过程中发生了溢出,应该是有某些中间量超出了它可以处理的范围.
最后一个等式你写的是:
G*p*( (Sin[B])^2*Log[((x-d)^2+h^2)/((x+d)^2+h^2)]+Sin[2B]*ArcTan[(2dh)/(x^2+h^2-d^2)]=a,少写了一个右半括号(在(Sin[B])^2后面),改过来就可以了.还有就是d*h不能简写成dh,不然也会报错(上次没发现,抱歉),我马上去试试改完了行不行(我也是初学,惭愧)
最终结果:你变形以后的那个方程无解,用Mathematica的输出结果是:
Solve::incnst: Inconsistent or redundant transcendental equation. \
After reduction, the bad equation is d^2 (-243750000 d^2+75000000 \
d^4+(24396215052 d^2 h^2)/(9241/625+<<1>>+<<1>>)^2) == 0. >>还有另外两个相同形式的提示,这个表示方程无解.最后还有和以前相同的提示,就是说这个方程无法用代数方法求解.
换成NSolve以后算了半天也没有反应,FindRoot等是算局部解的,用不上.
也许我能力不够,帮不了你太多的忙.不过你可以到一些专业的工程计算论坛上去问问,那里的专业人士会比较多.