Как сделать так, чтобы функция at () оценивала выражение en? - PullRequest
0 голосов
/ 14 июня 2019

Я попробовал функцию "at" с какой-то функцией внутри нее, а затем передал вывод некоторой переменной. Максима успешно продифференцировал выражение, но затем «at» не сработает, и на выходе получится «at (- некоторые успешно выполненные функции--, z = l) = 0». Мне нужно, чтобы "at" работал правильно, чтобы дать результат переменной.

(%i34)  a: 45*z^2*l-1; /*expression*/
eq1: at(diff(a, z, 1), z = l)=0; /*giving the meaning of the operations to eq1*/
at(diff(a, z, 1), z = l)=0; /*trying the same without giving the result to a variable*/
ev(eq1, eval); /*trying ev*/
(a) l*z^2* 45-1
(eq1)    at(2*l*z* 45,z=l)=0
(%o34)  2*l^2* 45=0
(%o35)  at(2*l*z* 45,z=l)=0    

Так что, когда я не даю результат at другим переменным, это нормально, но когда я пытаюсь - это терпит неудачу даже при дополнительной оценке. Как это работает? А также это было опробовано в Linux. В Windows у меня нет той же проблемы.

1 Ответ

1 голос
/ 14 июня 2019

Я получаю следующий вывод. Разве% o3 не то, что вы ищете?

(%i2) a: 45*z^2*l-1;
                                 2
(%o2)                      45 l z  - 1
(%i3) eq1: at(diff(a, z, 1), z = l)=0;
                                2
(%o3)                       90 l  = 0

Я работаю с Maxima 5.42.2 на MacOS. Что build_info(); сообщает в вашей системе Linux? Некоторые дистрибутивы Linux содержат древнюю версию Maxima; может быть, вы можете получить более новую версию. На самом деле довольно просто собрать Maxima из исходного архива в системе Linux; Я могу помочь, если вы хотите пойти по этому пути.

...