Максима - не может построить мое уравнение с plot2d, так как «выражение оценивается как нечисловое значение везде в диапазоне построения» - PullRequest
0 голосов
/ 14 января 2019

В Maxima я хочу построить значение параметра в зависимости от времени, решив уравнение для этого конкретного параметра. Я новичок в Maxima, и я уже борюсь с началом моих расчетов. Я использую следующее уравнение m, которое я хочу решить для L:

m= m_I - (m_I-m_R)/(1+%e^(-s_R*(t-L)))
solve(%,L);

, что дает мне

L=(t*s_R-log(m_I/(m-m_R)-m/(m-m_R)))/s_R

как вывод. Если я теперь назначу значения для всех параметров, кроме L и T

ev(%,m=0.5,m_I=1,m_R=0.1,s_R=0.01);
plot2d(%,[t,0,10]);

Я получаю сообщение об ошибке

"plot2d: выражение оценивается как нечисловое значение везде в диапазон построения. plot2d: нечего строить. "

Я знаю, что это очень просто, но я все еще не знаю, что я делаю неправильно. Я также пытался использовать функцию m (t): = ... вместо выражения m = ..., с тем же результатом.

1 Ответ

0 голосов
/ 14 января 2019

Обратите внимание, что solve вернул список, содержащий один элемент, который является уравнением. Чтобы отобразить результат, вам нужно выделить правую часть уравнения, потому что это то, что понимает plot2d (в противном случае он не знает, что делать с выводом solve).

Мой совет - сначала получить ту часть результата solve, которую вы хотите, а затем построить ее. Что-то вроде:

solve (...);
my_equation : %[1];
my_equation_rhs : rhs(%);
plot2d (my_equation_rhs, [t, 0, 10]);

Недостаток plot2d в том, что он не знает, что делать с результатом solve; прости за это.

...