Каковы ограничения vector_integrate?

#python #sympy

#python #симпатия

Вопрос:

Я пытаюсь решить эту проблему в sympy 1.7, используя vector_integrate:

введите описание изображения здесь

Я думал, что это сработает:

 import sympy
from sympy.vector import CoordSys3D, ParametricRegion, vector_integrate
from sympy.abc import t,x,y

C = CoordSys3D('C')

region = ParametricRegion((t, t), (t, 0, 1))

field = x * C.i   (x y) * C.j

vector_integrate(field, region)
 

Но результат:

 2*x   y
 

Я неправильно перевел проблему в sympy или это проблема типа, которая еще не поддерживается vector_integrate ?

Ответ №1:

Вам нужно использовать координаты из заданной системы координат , например C.x , а не какой — либо другой вызываемый символ x .

 In [15]: from sympy.vector import CoordSys3D, ParametricRegion, vector_integrate 
    ...: C = CoordSys3D('C')                                                                                                      

In [16]: region = ParametricRegion((t, t), (t, 0, 1))                                                                             

In [17]: field = C.x * C.i   (C.x C.y) * C.j   # note C.x  rather than  x                                                         

In [18]: vector_integrate(field, region)                                                                                          
Out[18]: 3/2
 

Любой другой символ рассматривается как скалярная константа в поле. Возможно, это будет легче понять, если мы изменим названия символов:

 In [19]: from sympy.abc import a, b                                                                                               

In [20]: field = a * C.i   (a b) * C.j                                                                                            

In [21]: vector_integrate(field, region)                                                                                          
Out[21]: 2⋅a   b