如何在python中解决两个变量中的复杂方程?

时间:2014-04-10 19:00:44

标签: python-2.7 math linear-algebra

我想解决这个给定的等式。 A+B = 0;其中

A = (x-40+1j*(y+30))-(120+0j);  
B = (x-60)+1j*(y+30)-(70*(0.866-0.5j))

任何人都可以提示如何继续吗?

3 个答案:

答案 0 :(得分:2)

这不是编程问题,而是更多具有复杂变量问题的代数。

你有两个未知数,x和y,以及一个等式。

你能做的最好就是重写以表达y作为x的函数。将有许多解决方案来满足它。

它似乎也很复杂,因此解决方案将是复杂平面中的一个函数。

我认为我的代数是正确的 - 检查我:

y = -j*(140.31 - x -j*47.5)

绘制它 - 这是你的解决方案。

我刚问Wolfram Alpha检查我:

enter image description here

答案 1 :(得分:2)

这是纯粹的数学。设置z = x + j * y,则等式为

A = z+(-40+1j*30)-(120+0j);  
B = z+(-60+1j*30)-70*(0.866-0.5j)

因此A + B = 0与

相同
-2*z=C=(-40+1j*30)-(120+0j)+(-60+1j*30)-70*(0.866-0.5j)
or
z=-0.5*C

这是复杂算术中的简单计算。

答案 2 :(得分:0)

def fun(x):
    A = (x[0]-40+`1j`*(x[1]+30))-(120+`0j`)
    B = (x[0]-60)+`1j`*(x[1]+30)-(70*(0.866-0.5j))
    return [np.real(A+B),np.imag(A+B)]
sol = optimize.root(fun, [10,10], method='hybr') 
sol