2013-04-28 1 views
0

У меня есть следующий код:Более компактное решение в Maxima

for n:1 thru 11 do for j:1 thru 21 do v[n,j]:1/sqrt(dp)* 
(sum(eigenfunctionsort[n,j]*exp(%i*2*%pi*m*x/dp),m,-10,10)); 

Где eigenfunctionsort определено ранее, х является переменной я проинтегрировать позже и я суммируя по т.

Когда я печатаю say v [1,1], я получаю большое длинное неприятное уравнение. Как я могу заставить Maxima сварить это в чем-то значащем, чтобы я мог проверить мои результаты.

Бест, Бен

ответ

1

Попробуйте функцию 'trigsimp' или, может быть карта (trigsimp, your_expression). Не уверен, что это поможет, но стоит попробовать. Также посмотрите на «demoivre».

0

Я не знаю, как выглядит ваш собственный векторный собственный вектор или ваше «большое длинное противное уравнение», но я часто получаю сложные собственные значения и собственные векторы из Maxima, даже когда знаю, что они должны быть простыми и реальными.

Например,

(%i1) A : matrix([1, 4, 1], [4, 1, 9], [1, 9, 1]); 
(%i2) eigenvalues(A); 

делает беспорядок. Его можно упростить, применив rectform, чтобы преобразовать выход в декартову, а затем trigreduce, чтобы уменьшить мнимую часть результата. Наконец, вы можете преобразовать результат в плавающую точку:

(%i3) rectform(%)$ 
(%i4) trigreduce(%)$ 
(%i5) float(%); 

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

  • Нет связанных вопросов^_^