Как получить нули данного уравнения, используя fzero в MATLAB? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть следующая функция, которую я хочу решить с помощью fzero:

f = lambda* exp(lambda^2)* erfc(lambda) - frac {C (T_m - T_i)}/{L_f*sqrt(pi)}

Здесь C, T_m, T_i и L_f все вводятся пользователем.

При попытке решить с помощью fzero MATLAB выдает следующую ошибку:

Undefined function or variable 'X'.

(где X - переменные, указанные выше)

Эта ошибкапонятно.Но есть ли способ обойти это?Как мне это решить?

1 Ответ

0 голосов
/ 28 мая 2018

Насколько я понимаю, после прочтения вашего вопроса я получил ответ, поскольку не совсем понятно, что именно вы пытаетесь и чего именно хотите.Размещение точных строк кода очень помогает в понимании (насколько это возможно, удалите беспорядок).Если затем добавить вывод, который дает Matlab, становится намного проще убедиться, что мы правильно ответили на ваш вопрос, и это позволит нам опробовать его.Обычно хорошей идеей является привести некоторые примерные значения для данных, которые в любом случае должны быть введены пользователем.

Прежде всего, чтобы сделать это функцией, ей нужен либо дескриптор.Или, если вы сохранили его как файл Matlab, вы, как правило, не хотите, чтобы другие входные данные были в вашем файле m, а не в переменной.Итак,

function [out]=yourfun(in)
constants=your values; %you can set a input or inputdlg to get a value from the user
 out= something something, your lambda thingy probably; %this is the equation/function you're solving for
end

Теперь, поскольку это не так уж и удобно, я предлагаю следующее

%declare or get your constants here, above the function makes it easier
syms lambda
f = lambda* exp(lambda^2)* erfc(lambda) - frac {C (T_m - T_i)}/{L_f*sqrt(pi)};
hf=matlabFunction(f); %this way matlab automatically converts it to a function handle, alternatively put @(lambda) in front
fzero(hf,x0)

Также эта страница Matlab также может помочь вам;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...