2015-04-19 3 views

ответ

1

Я думаю, ev(f, infeval) - это то, что вы хотите. См. ? ev для информации о infeval и других флагах оценки.

(%i1) c : [1, 2, 3]; 
(%o1)        [1, 2, 3] 
(%i2) b : '(a*c); 
(%o2)         a c 
(%i3) a : 3; 
(%o3)         3 
(%i4) f : '(b*2); 
(%o4)         2 b 
(%i5) f; 
(%o5)         2 b 
(%i6) ''f; 
(%o6)        2 a c 
(%i7) ev (f); 
(%o7)        2 a c 
(%i8) ev (f, infeval); 
(%o8)        [6, 12, 18] 

Вы также можете написать ev(f, infeval);, как только f, infeval; на входе строке.

Это, мой совет, не пытайтесь слишком усердно найти хитрые способы оценить материал. Легко написать что-то, что имеет неожиданные результаты и трудно понять. Вам нужно будет найти баланс между попыткой заставить Maxima делать то, что вы хотите, и приспособить особенности Maxima (т. Е. Измените свои идеи в соответствии с Maxima).

+0

сказочный - это будет прекрасно и спасибо за совет. – TomH

1

Вы должны использовать f:'(''b*2);. Это работает так, как вы ожидаете.

+0

Спасибо. Есть ли другая альтернатива добавлению «каждой переменной, которую мне нужно оценить? – TomH

+0

@TomH Я не знаю, существует ли он. И не забудьте, пожалуйста, возвысить. – justanothercoder

Смежные вопросы