У меня есть вопрос о Sage/Python, но я уверен, что это очень общий вопрос CS. У меня есть большая система из N нелинейных уравнений с N переменными. Прежде чем передать его численному решателю, я пытаюсь позволить Сейджу упростить уравнения с помощью решения. При работе с простым примером у меня есть следующее: «eqa» — это список уравнений для решения в переменных x0, x1, w0, w1 и т. д. Следующее отлично работает из командной строки:
j(x0,x1,w0,w1,y0,y1,z0,z1) = solve(eqa, var('x0 x1 w0 w1 y0 y1 z0 z1'))
(Я пытаюсь определить список уравнений как «вызываемое символьное выражение» (Sage), потому что числовая оптимизация, которую я использую, лучше работает с ними, чем с обычными функциями Python.)
В любом случае, когда я включаю это в скрипт и пытаюсь его загрузить, я получаю сообщение об ошибке:
j(x0,x1,w0,w1,y0,y1,z0,z1) = solve(eqa, var('x0 x1 w0 w1 y0 y1 z0 z1'))
SyntaxError: can't assign to function call
Я знаю, что, должно быть, делаю что-то не так в командной строке, и это просто работает по какой-то глупой случайности. Или требуется особая осторожность при определении этих вызываемых символических выражений в скрипте? Спасибо за любую информацию, которую вы можете предоставить. Вот ссылка на разницу между этими типами «функций».