Symboliseer de symbolische expressie in kwadratische vorm

Stel dat ik in Matlab een symbolische vergelijking als deze heb

syms x y z real

T = 2*x^2 + k*y^2 + 6*k*x*y

Hoe kan ik de matrix B zo vinden

T = [x y] * B * [x y]'

Bedankt voor je hulp.

0
In Matlab2013a is er de jutefunctie
toegevoegd de auteur OHLÁLÁ, de bron

2 antwoord

Ik weet niet zeker of ik het probleem hier begrijp. Als je de coëfficiënten kent, kun je ze dan gewoon uit de vergelijking halen en daaruit B maken?

D.w.z.:

[x y ] * [ a b ; c d ] * [ x y ]' = ax^2 + dy^2 + (b + c)xy = ax^2 + dy^2 + exy

Zo

B = [ a 0 ; b e ]
0
toegevoegd
Kun je de code geven die je gebruikt om een ​​vergelijking te maken? (Ik heb nog nooit met ze gewerkt, dus ik zou niet weten hoe ik een "vergelijkings" -object moet maken.)
toegevoegd de auteur Darhuuk, de bron
Ah, maar ik hoef niet je exacte formule te krijgen. Kun je me wat MATLAB-code geven die een object van hetzelfde type maakt als je vergelijking? Dan kan ik ermee spelen en kijken of ik de coëfficiënten kan extraheren.
toegevoegd de auteur Darhuuk, de bron
Ja, maar ik weet niet hoe ik deze coëfficiënt automatisch uit de oorspronkelijke vergelijking moet extraheren.
toegevoegd de auteur Davide Aversa, de bron
Het is een erg ingewikkelde formule. :( Het is de kinetische energie van een 3R-robotmanipulator, maar ik voeg aan mijn vraag meer details toe over de symbolische formule in matlab.
toegevoegd de auteur Davide Aversa, de bron

OK. Ik heb dit probleem net zelf opgelost.

B = 0.5 * jacobian(jacobian(T,V),V)

waarbij V een vector van variabelen is.

De uitleg dat het een beetje wiskundig is. Als je meer informatie wilt, vraag het me gewoon. :)

0
toegevoegd