Уравнение возвращает решение в WolframAlpha, но дает логический ноль в MATLAB. Как я могу это исправить?


person TheTreeMan    schedule 02.05.2017    source источник


Ответы (1)


Если у вас нет особой причины для использования символьных выражений, вы можете решить уравнение, которое у вас есть, используя fрешить следующим образом:

%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

Этот метод можно использовать для решения любого уравнения, которое у вас может быть.

person ammportal    schedule 02.05.2017