以下是等式in WolframAlpha returning me the correct answer。
在MATLAB中,我写了以下内容:
mu = 305; %作为临时示例,因为它大于c,即300
syms x
eqn = ((1 + (x/(mu + 300)))^((1/2) + (150/mu)))*((1 - (x/(mu - 300)))^((1/2) - (150/mu))) - 0.2 == 0 %matlab shows the answer is -605
solve(eqn,x)
它是相同的等式,除了MATLAB替代我的mu。 MATLAB将返回以下内容:
eqn = logical 0
ans = x
我是否以某种方式输入错误的等式?这就是为什么当我没有压制这个等式时它会向我显示逻辑零点?如何让它产生与WolframAlpha相同的值?
我还想注意,Maple似乎也挂在同一个等式上。
答案 0 :(得分:0)
除非您有使用符号表达式的特定原因,否则您可以使用fsolve解决您使用的等式,如下所示:
%Define your value of mu
mu = 305;
% Define the equation as an anonymous function
fn = @(x) ((1 + (x/(mu + 300)))^((1/2) + (150/mu)))*((1 - (x/(mu - 300)))^((1/2) - (150/mu))) - 0.2;
% Define the initial value for x so that fsolve can find the root nearest to that
x0 = 1;
root_x = fsolve(fn, x0);
这导致输出root_x = 5.0000 + 0.0000i
您还可以更改x0的初始值
x0 = 400;
root_x = fsolve(fn, x0);
这将返回输出root_x = -4.9005e+02 - 2.6326e-05i
此方法可用于解决您可能拥有的任何方程式。