[matlab] functie solver

Pagina: 1
Acties:

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 20-08 14:20
Ik heb de hele morgen al bezig om deze vergelijking door matlab op te laten lossen:

I=ACA'

I = identiteits matrix
A' = de transpose van A

Nu kan ik wel het voorwerk doen, maar ik zoek iets dat matlab het zelf kan. Momenteel heb ik mijn matlab handleiding ook niet bij de hand en google levert
hier: http://www.mathworks.com/...lab_prog/matlab_prog.html staat ook veel, maar nog niet wat ik zoek. Nu weet ik niet of dit uberhaupt mogelijk is. Maar zou iemand mij kunnen helpen.

Gaat trouwens om een parameter schatter voor wat het eten bij ons in het studentenhuis gaat kosten ;)

if broken it is, fix it you should


Verwijderd

kun je iets meer info geven over wat er in A en C staat, en wat de afmetingen zijn?

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 20-08 14:20
Verwijderd schreef op zondag 15 mei 2005 @ 11:40:
kun je iets meer info geven over wat er in A en C staat, en wat de afmetingen zijn?
momenteel een 5x5 matrix, maar dat doet er eigenlijk niet toe (althans voor matlab)
C een covariance matrix van een lijst met metingen (1000 meting van 5 verschillende "sensoren"). En A is een nog onbekende matrix dit ik wil weten

[ Voor 24% gewijzigd door elgringo op 15-05-2005 12:03 ]

if broken it is, fix it you should


Verwijderd

Neem eens de Cholesky decompositie van C inverse. Dan krijg je A.

Ik deed de volgende stappen:

( ' is transpose " is inverse)

I=ACA'

A =5x5, C=5x5, dus AC=5x5, en ik neem aan dat AC een inverse heeft.

Dan krijg ik

(AC)"I=A' (aan beide kansen premultiply met (AC)"
C"A"I=A' ( rekenregel: (AB)"=B"A" als beide inverses bestaan)
C"A"=A' (I valt weg omdat aan beide kanten de maten 5x5 zijn) <--- dit is onzin...shit.
C"=A'A (aan beide kanten postmultiply met A)

Dus nu om A te krijgen moet je een matrix A vinden zodat A'A is C". Dat doe je met een Cholesky decompositie.

[ Voor 109% gewijzigd door Verwijderd op 15-05-2005 12:20 ]


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 20-08 14:20
Verwijderd schreef op zondag 15 mei 2005 @ 11:56:
Neem eens de Cholesky decompositie van C inverse. Dan krijg je A.

Ik deed de volgende stappen:

( ' is transpose " is inverse)

I=ACA'

A =5x5, C=5x5, dus AC=5x5, en ik neem aan dat AC een inverse heeft.

Dan krijg ik

(AC)"I=A' (aan beide kansen premultiply met (AC)"
C"A"I=A' ( rekenregel: (AB)"=B"A" als beide inverses bestaan)
C"A"=A' (I valt weg omdat aan beide kanten de maten 5x5 zijn)
C"=A'A (aan beide kanten postmultiply met A)

Dus nu om A te krijgen moet je een matrix A vinden zodat A'A is C". Dat doe je met een Cholesky decompositie.
Oftewel A=chol(C") ?

Edit:

en ja hoor hij werkt !!!

Hartstikke merci; ik kende die Cholesky helemaal niet...

[ Voor 15% gewijzigd door elgringo op 15-05-2005 12:15 ]

if broken it is, fix it you should


Verwijderd

jep, maar wel onder een aantal aannamen, zoals het bestaan van inverses. Echter, hier kan ik weinig over zeggen, omdat ik niet zie hoe je tot de vergelijking kwam.

Is misschien ook aardig om te posten.

[ Voor 98% gewijzigd door Verwijderd op 15-05-2005 12:09 ]


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 20-08 14:20
Verwijderd schreef op zondag 15 mei 2005 @ 12:08:
jep, maar wel onder een aantal aannamen, zoals het bestaan van inverses. Echter, hier kan ik weinig over zeggen, omdat ik niet zie hoe je tot de vergelijking kwam.

Is misschien ook aardig om te posten.
Ik wilde de covariance zo voor elkaar krijgen dat dit een eenheids matrix is (rekent makkelijk). En zo kwam ik op deze verlijking. Of het goed is laat ik buiten beschouwing. Dat zie ik wel als mijn programma moeilijk gaat doen.

if broken it is, fix it you should


Verwijderd

de covariantie matrix is nooit een eenheidsmatrix. Verder zie ik dat ik boven een fout heb gemaakt in de afleiding (zie boven).

Post je probleem eens, dan kunnen we er over nadenken.
Pagina: 1