2017-02-02 5 views
1

Я пытаюсь написать скрипт sympy, но сталкиваются с проблемами на L1, L2. Любая помощь приветствуется.Ошибки работы матрицы в sympy

В L1, я пытаюсь заменить значения в выражении умножения матрицы в более ранней строке. Не могу ли я заменить объект матрицы?

На L2 я пытаюсь оценить значение подстановки в числах с плавающей запятой, но не получаю. Почему eval() не дает значение с плавающей запятой?

from sympy import * 
init_printing() 
x, x1, x2, x3 = symbols ('x x1 x2 x3') 
N1 = ((x-x2)*(x-x3))/((x1-x2) * (x1-x3)) 
N2 = ((x-x1)*(x-x3))/((x2-x1) * (x2-x3)) 
N = Matrix([ [N1,N2] ]) 
expr1 = N*Transpose(N) 
print expr1.subs([ (x1,0.0), (x2,2.5), (x3,5) ]) #L1 
N1.evalf (subs={x1:0.0, x2:2.5, x3:5}) #L2 

EDIT:

После одного ответа, я ставлю несколько дополнительных строк кода. Строки `L3, L4, не работают. В L3, L4, я пытаюсь интегрировать f1, который является матрицей и строкой этой матрицы. Но неудача в обоих случаях. Как интегрировать матрицу в sympy? Поддерживается ли это?

from sympy import * 
init_printing() 
x, x1, x2, x3 = symbols ('x x1 x2 x3') 
N1 = ((x-x2)*(x-x3))/((x1-x2) * (x1-x3)) 
N2 = ((x-x1)*(x-x3))/((x2-x1) * (x2-x3)) 
N = Matrix([ [N1,N2] ]) 
expr1 = N*Transpose(N) 
print expr1.subs([ (x1,0.0), (x2,2.5), (x3,5) ]) #L1 
N1s=N1.subs([ (x1,0.0), (x2,2.5), (x3,5) ]) 
N2s=N2.subs([ (x1,0.0), (x2,2.5), (x3,5) ]) 
Ns = Matrix([ [N1s,N2s] ]) 
f1 = Ns*x**3 
f2 = integrate(f1,(x,0,5)) #L3 
f2 = integrate(f1.row(1),(x,0,5)) #L4 

ответ

1

Первая линия работает для меня. Убедитесь, что вы используете последнюю версию SymPy (1.0 на момент написания этой статьи).

Вторая строка не работает, потому что evalf(subs={...}) не работает, если вы не замените все переменные в выражении. См. https://github.com/sympy/sympy/issues/6974. Если вы хотите заменить некоторые переменные, просто используйте subs.

+0

Большое спасибо за ответ. Можете ли вы также прокомментировать «L3, L4»? – vfg4341

+0

Ли линии 'L3, L4' работают на вас? – vfg4341

+0

@ vfg4341 Лучше спросите новый вопрос, так как – asmeurer

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