0

我是一个相当新的 Matlab 用户,我必须探索它以数值积分微分方程组。现在我试图解决一个简单的方程,但它给了我一个“lambertw”输出。

(s - 1) * exp(-s) = k

因此,对于给定的 k,k < exp(2)I 应该得到大约两个不同的“s”值。这是我用于此任务的代码位(使用符号工具箱):

%%Hopf bifurcation calculations
syms s
solve((s-1) * exp(-s) == k, s)
%uhopf = s*k 

和输出:

1 - lambertw(0, -(3*exp(1))/25)

在查看了一些示例后,我试图获得一个明确的解决方案,但没有成功:

syms x
x=solve('(s-1)*exp(-s) == k')

最后,我的问题是如何将首先给出的结果更改为一个简单的数值,即给定的 k 会给我 s1 和 s2。任何提示或帮助将不胜感激!我还在看其他一些例子。

4

1 回答 1

0

如果我正确理解您的问题,您可以使用该eval()函数来评估字符串以检索一个简单的数字示例。

例如

char s;
char k;
A=solve('(s-1) * exp(-s) = k', 'k=exp(1)');

sol_s=A.s(1);
sol_k=A.k(1);

ans=eval(sol_s)
于 2013-11-18T23:13:19.463 回答