Симпийный символьный дифференциал - PullRequest
0 голосов
/ 27 августа 2018

Итак, у меня есть уравнение, подобное этому enter image description here.Теперь, если я использую функцию grad, она становится такой:

enter image description here

Как мне это сделать на sympy?Sympy использует систему отсчета, но я не нашел ничего, кроме x, y, z, и мне нужно несколько пользовательских переменных, подобных этой.Можно ли сделать это в симпати?

1 Ответ

0 голосов
/ 03 сентября 2018

Если вы указываете свои тэта-переменные как функции, вы можете получить что-то вроде этого:

In [5]: A = theta12(x)*theta23(x)*theta13(x)

In [6]: A
Out[6]: θ₁₂(x)⋅θ₁₃(x)⋅θ₂₃(x)

In [7]: A.diff(x)
Out[7]: 
              d                          d                          d         
θ₁₂(x)⋅θ₁₃(x)⋅──(θ₂₃(x)) + θ₁₂(x)⋅θ₂₃(x)⋅──(θ₁₃(x)) + θ₁₃(x)⋅θ₂₃(x)⋅──(θ₁₂(x))
              dx                         dx                         dx   

Обратите внимание, что я использую обычную производную.Для большего количества переменных просто используйте больше переменных (к сожалению, они будут распределяться):

In [8]: A = theta12(x,y)*theta23(x,y)*theta13(x,y)

In [9]: A.diff([[x,y]])
Out[9]: 
⎡                    ∂                                   ∂                                   ∂                                  ∂         
⎢θ₁₂(x, y)⋅θ₁₃(x, y)⋅──(θ₂₃(x, y)) + θ₁₂(x, y)⋅θ₂₃(x, y)⋅──(θ₁₃(x, y)) + θ₁₃(x, y)⋅θ₂₃(x, y)⋅──(θ₁₂(x, y))  θ₁₂(x, y)⋅θ₁₃(x, y)⋅──(θ₂₃(x, 
⎣                    ∂x                                  ∂x                                  ∂x                                 ∂y        

                          ∂                                   ∂            ⎤
y)) + θ₁₂(x, y)⋅θ₂₃(x, y)⋅──(θ₁₃(x, y)) + θ₁₃(x, y)⋅θ₂₃(x, y)⋅──(θ₁₂(x, y))⎥
                          ∂y                                  ∂y           ⎦

Оператор градиента есть, но он предназначен для использования только в модуле sympy.vector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...