gpt4 book ai didi

wolfram-mathematica - 将复数 I 添加到表达式的子表达式中?

转载 作者:行者123 更新时间:2023-12-04 08:12:27 25 4
gpt4 key购买 nike

考虑这个例子:

expr = a (1 + b + c d + Sqrt[-2 d e + fg + h^2] + a j );

现在我想插入一个复杂的 I在平方根中的项之前并保留表达式的其余部分。我知道 expr只有一个 Sqrt其中的术语。所以我尝试了以下方法:
ToBoxes@# /. SqrtBox@x_ :> RowBox[{I, " ", SqrtBox@x}] &[
expr] // ToExpression
Out[1] = $Failed

Q1:为什么会失败?

解决方法是使用不同的变量,然后将其替换为 I如此:
(ToBoxes@# /. SqrtBox@x_ :> RowBox[{k, " ", SqrtBox@x}] &[expr] // 
ToExpression) /. k -> I

enter image description here

Q2:为什么这样做?

Q3:是否有替代/更好的方法来做到这一点?

最佳答案

错误

expr /. Sqrt[x_] -> I Sqrt[x]

?

编辑

如果您想考虑 1/Sqrt[x] 情况,请尝试:
expr/.Sqrt[x_]->I Sqrt[x]/.Power[x__,Rational[-1,2]]-> 1/( I Sqrt[x])

关于wolfram-mathematica - 将复数 I 添加到表达式的子表达式中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com