Sabemos que é simétrico e positivo-definido. Sabemos que é ortogonal:B
Pergunta: simétrico e positivo-definido? Resposta: Sim.
Pergunta: Um computador poderia ter nos dito isso? Resposta: Provavelmente.
Existem sistemas de álgebra simbólica (como o Mathematica) que manipulam e propagam fatos conhecidos sobre matrizes?
Edit: Para ser claro, eu estou fazendo esta pergunta sobre matrizes definidas abstratamente. Ou seja, eu não tenho entradas explícitas para e , só sei que elas são matrizes e têm atributos particulares como simétrico, definido positivo, etc.B
matrix
symbolic-computation
MRocklin
fonte
fonte
Respostas:
Edit: Agora está no SymPy
Resposta mais antiga que mostra outro trabalho
Então, depois de analisar isso por um tempo, foi o que eu encontrei.
A resposta atual para minha pergunta específica é "Não, não existe um sistema atual que possa responder a essa pergunta". No entanto, existem algumas coisas que parecem se aproximar.
Primeiro, Matt Knepley e Lagerbaer apontaram para o trabalho de Diego Fabregat e Paolo Bientinesi . Este trabalho mostra a importância potencial e a viabilidade desse problema. É uma boa leitura. Infelizmente, não sei exatamente como o sistema dele funciona ou do que ele é capaz (se alguém souber de outro material público sobre esse assunto, me avise).
Segundo, há uma biblioteca de álgebra tensorial escrita para o Mathematica chamada xAct, que lida com simetrias e simbolicamente. Ele faz algumas coisas muito bem, mas não é adaptado ao caso especial da álgebra linear.
Terceiro, essas regras são formalmente escritas em algumas bibliotecas para o Coq , um assistente automatizado de prova de teoremas (o Google pesquisa a álgebra linear / matricial coq para encontrar algumas). Este é um sistema poderoso que infelizmente parece exigir interação humana.
Depois de conversar com algumas pessoas que provam o teorema, elas sugerem procurar na programação lógica (ou seja, Prolog, que Lagerbaer também sugeriu) esse tipo de coisa. Que eu saiba, isso ainda não foi feito - eu posso brincar com isso no futuro.
Atualização: eu implementei isso usando o sistema Maude . Meu código está hospedado no github
fonte
SymPy
inferir a simplificação da multiplicação e inversão de matrizes?Alguns cálculos de matriz simbólica (por exemplo, conclusão da matriz de bloco) podem ser feitos com o pacote NCAlgebra http://www.math.ucsd.edu/~ncalg/ (que é executado no mathematica).
Bergman http://servus.math.su.se/bergman/ é um pacote no Lisp com recursos semelhantes.
Alguns artigos relevantes:
http://math.ucsd.edu/~helton/osiris/COMPALG2000/ohRevisIJC.pdf
http://math.ucsd.edu/~thesis/thesis/dkronewitter/dkronewitter.pdf
http: // www. tandfonline.com/doi/abs/10.1080/00207170600882346
fonte
CAS
2x2
3x3
A questão então se torna: o que dizer de uma
N
matriz dimensional? Talvez você possa criar um esquema indutivo no qualN-1 x N-1
for assumido verdadeiro e, em seguida, construir uma nova matriz de blocos com tamanho geralN x N
para provar que é positivo e definitivo e simétrico.Portanto, a pergunta final, de qual software é mais adequado para a tarefa (se houver), minha experiência foi com (
MATLAB/MuPad
eDerive
ainda o uso) e nenhum deles lida com vetores e matrizes muito bem.MATLAB
divide tudo em componentes eDerive
pode declarar,Non-scalars
mas não lhes aplica nenhuma regra de simplificação.fonte
Já faz um tempo desde a última vez que usei um desses pacotes, mas pensei que você poderia fazer isso em idiomas como o Mathematica através do uso de asserções. Algo como Assert [A, Symmetric] diz ao Mathematica que A é uma matriz simétrica, e assim por diante. No momento, não tenho acesso a nenhum desses itens úteis, portanto, isso deve ser verificado.
fonte
Assuming
vez deAssert
.Assuming
aplicará essas suposições ao simplificar ou integrar uma expressão, mas a documentação não está clara sobre se as propriedades da matriz são propagadas. Meu palpite é que essas propriedades não são realizadas através de cálculos simbólicos.Maple 15 não pode fazê-lo. Não possui propriedade "Ortogonal" para matrizes (embora tenha Simétrico e PositivoDefinido).
fonte
No Mathematica, você pode pelo menos verificar essas propriedades para matrizes específicas. Por exemplo, a matriz
A
como você descreveu:Para matriz
B
:Então:
Matrizes Mathematica e documentação de álgebra linear
fonte