python一元一次方程虚数解_python – SymPy虚数

我正在乱写一些SymPy代码来处理带有虚数的符号表达式.

首先,我想让它将x和y作为实数,并找到x = iy的解决方案.所以我可以这样做.

x, y = sympy.symbols("x y", real=True)

print(sympy.solve([x-sympy.I*y]))

(SymPy求得一个值列表,所有值必须为0.所以x-iy = 0 => x = iy). SymPy会正确地告诉我

[{x: 0, y: 0}]

但是,如果我这样做(理论上相同):

x, y = sympy.symbols("x y")

print(sympy.solve([x-sympy.I*y, sympy.im(y), sympy.im(x)]))

然后现在SymPy告诉我

[{re(y): y, re(x): I*y, im(x): 0, x: I*y, im(y): 0}]

这在技术上是正确的,但并没有为我做任何事情.这只是SymPy中的限制,还是可以通过以这种方式约束复杂的x和y来让它给我x = y = 0?

解决方法:

因为SymPy在简化实数对比复数时更好,所以以下策略有助于:为实部/虚部设置实数变量,然后从中形成复变量.

from sympy import *

x1, x2, y1, y2 = symbols("x1 x2 y1 y2", real=True)

x = x1 + I*x2

y = y1 + I*y2

现在x和y可以用作等式中的复变量

sol = solve([x-I*y, im(y), im(x)])

print(x.subs(sol[0]), y.subs(sol[0]))

输出:0 0.

标签:python,sympy

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值