我想在此函数中计算 z,但出现 z 未定义错误

问题描述 投票:0回答:1

我使用这个函数来计算 z,但它显示“z 在第 35 列第 1 行附近未定义”

z=solve(0,3==exp((-3.14*2)/(sqrt(1-z*z))),z)
z=double(z)

我安装了符号包,但它仍然不起作用,我不知道任何解决方案。

symbolic-math
1个回答
0
投票

我不相信 Maxima 不会解出这个相当简单的方程,但我错了!

这是输出:

(%i49)  solve([exp((-3.14*2)/(sqrt(1-z*z)))-3], [z]);
rat: replaced -6.28 by -157/25 = -6.28

(Expression longer than allowed by the configuration setting)

将“sqrt(1-z^2)”交换为“x”后,使用更简单的形式完全没有问题

(%i50)  solve([exp(-A/x)-3], [x]);
(%o50)  [x=-A/log(3)]

我们人类还有希望——人工智能还没有完全统治世界。 一旦你知道 sqrt(-1) == i ,解 OP 方程就相对简单了 A 级作业:

3 = exp(-3.14*2/sqrt(1-z^2))

取对数并组合 3.14*2 = 6.28(pi 的 poxy 近似值?)

log 3 = -6.28/sqrt(1-z^2)
sqrt(1-z^2) = -6.28/log 3
1 - z^2 = (6.28/log 3)^2
z^2 = 1 - (6.28/log 3)^2

因此解是一个虚数

z = +/-sqrt( 1-(6.28/log 3)^2 )
z = +/-i*sqrt((6.28/log 3)^2-1)

Maxima 可以处理此类方程并正确解释解:

(%i61)  ratsimp(sqrt( 1-(6.28/log (3))^2 ));
rat: replaced -39.4384 by -24649/625 = -39.4384

(%o61)  (%i*sqrt(24649-625*log(3)^2))/(25*log(3))

但是对原始方程应用“简化”会造成混乱,这可能会让求解器走入死胡同。 Mathematica 的 Matlab 进展如何?

© www.soinside.com 2019 - 2024. All rights reserved.