Ошибка типа для нечислового вектора и для выполнения curl

#python #vector #sympy

#python #вектор #симпатичный

Вопрос:

Итак, я пытаюсь решить проблему для класса, и я пытаюсь выполнить curl, но это в переменных. В итоге я получаю ошибку типа: объект ‘type’ не подлежит подписке. Я не знаю, что я делаю не так, поэтому, если кто-нибудь сможет сделать эту работу, я был бы очень признателен. Кроме того, как бы вы создали массив [частичный x, частичный y, частичный z]?

Я установил символы так, чтобы при этом не было ошибки, и я использую sympy.

 import sympy 
import math 
from sympy import Symbol, diff, Matrix, sin, cos

alpha = Symbol('a')
B0 = Symbol('B0')
x = Symbol('x')
print ('Symbols: ', alpha, B0, x)

A = Matrix[0, (B0)*sin(alpha*x), (B0)*cos(alpha*x)]
print ('Matrix: ', A)
 

Я ожидаю, что curl (alpha)(0, B0sin(alpha x), B0cos(alpha x) . Это в значительной степени доказательство.

Комментарии:

1. Попробуйте добавить () вокруг аргументов матрицы. A = Matrix( [...] ) Поскольку вы правы, вы пытаетесь ввести индекс в класс Matrix, поэтому вы получаете объект ‘type’, который не поддается подписке.

2. Это не очевидно из Matrix документации, но когда вы предоставляете 3 аргумента, он интерпретирует их как (number_of_row, number_of_columns, flat_list_of_values) . Обычно, хотя он ожидает list of row vectors , например Matrix([[1,2,3]]) , или Matrix([[1],[2],[3]]) или Matrix([[1,2],[3,4]]) .

3. Хорошо, добавление круглой скобки сработало! Спасибо!