You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SymPy将复数5**sp.I转换为cos(log(5))+i*sin(log(5))标准形式?

SymPy中复数5^I转换为标准形式的解决方案

可行方法

针对5**sp.I这类幂形式复数无法用expand(complex=True)转换为标准形式的问题,有两种直接的解决方式:

方法1:重写为指数形式后展开

利用SymPy的rewrite方法将幂形式转为指数形式,再调用expand_complex展开:

import sympy as sp

c2 = 5**(sp.I)
# 转换为指数形式并展开复数部分
result = c2.rewrite(sp.exp).expand_complex()
print(result)  # 输出:cos(log(5)) + I*sin(log(5))

方法2:直接展开并化简

直接使用sp.expand_complex处理原表达式,再配合simplify完成转换:

import sympy as sp

c2 = 5**(sp.I)
result = sp.expand_complex(c2)
print(sp.simplify(result))  # 输出:cos(log(5)) + I*sin(log(5))

原理说明

5**I的转换基于欧拉公式:

(a^{ib} = e^{ib\ln a} = \cos(b\ln a) + i\sin(b\ln a))
当a=5、b=1时,就得到(\cos(\ln5) + i\sin(\ln5))。expand(complex=True)对这类幂形式复数的解析支持有限,而rewrite(sp.exp)能将其转换为SymPy更易处理的指数形式,进而通过expand_complex拆解为实部和虚部的标准形式。

内容的提问来源于stack exchange,提问作者terben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:57:37