10 svar
188 visningar
Heretic 90
Postad: 3 jun 2017 14:37 Redigerad: 3 jun 2017 15:30

Hur diagonaliserar man en matris och varför?

Ibland kan man se detta: ϕTC ϕ = A

 

Vad menas egentligen? Varför skriver man på detta sätt? Jag vet vad matrisen C är. Resten vet jag inget av, förutom att matrisen A är en diagonalmatris.

Edit: Mitt mål är att räkna ut C av denna ekvation:

Mx··+Cx·+Kx=F

Där Cnxn, Mnxn, Knxn, xnx1, Fnx1

Då är ϕTC ϕ = 2ω1ζ100002ω2ζ2000000002ωiζi och det(K-ω2M) =0 och ζ=0.707.

Så hela formlen ska bli:

ϕTMϕx··+ϕTCϕx·+ϕTKϕx=ϕTF

 

Sida 22-6 http://www.colorado.edu/engineering/CAS/courses.d/Structures.d/IAST.Lect22.d/IAST.Lect22.pdf

Man gör ett linjärt variabelbyte för att få ett enklare system att lösa.

dioid 181
Postad: 3 jun 2017 19:03

Det är ett ortogonalt basbyte där  ϕ är basbytesmatrisen. Eftersom basbytet är ortogonalt så är ϕ-1=ϕT.

Men jag förstår inte din fråga, du vet vad matrisen C är, men ditt mål är att räkna ut C? Om du vet vad C är, varför ska du räkna ut det?

Kollade på länken och blev inte mycket klokare, de pratar inte om att räkna ut C utan att använda antagandet att den är diagonal i modalkoordinater för att specificera den, är det det du frågar om? Eller är det rayleighprojektionen av en given modell du undrar över (för att göra den diagonal). Det är inte diagonalisering i matematisk mening utan att göra en approximation av C som är diagonal (i modalkoordinater).

Kanske är din fråga att om du har A, hur räknar du ut C? I så fall C =ϕAϕT eftersom ϕϕT= ϕTϕ =I eftersom ϕ är ortonormal.

Heretic 90
Postad: 3 jun 2017 22:00
dioid skrev :

Det är ett ortogonalt basbyte där  ϕ är basbytesmatrisen. Eftersom basbytet är ortogonalt så är ϕ-1=ϕT.

Men jag förstår inte din fråga, du vet vad matrisen C är, men ditt mål är att räkna ut C? Om du vet vad C är, varför ska du räkna ut det?

Kollade på länken och blev inte mycket klokare, de pratar inte om att räkna ut C utan att använda antagandet att den är diagonal i modalkoordinater för att specificera den, är det det du frågar om? Eller är det rayleighprojektionen av en given modell du undrar över (för att göra den diagonal). Det är inte diagonalisering i matematisk mening utan att göra en approximation av C som är diagonal (i modalkoordinater).

Kanske är din fråga att om du har A, hur räknar du ut C? I så fall C =ϕAϕT eftersom ϕϕT= ϕTϕ =I eftersom ϕ är ortonormal.

 

Hej! Tack för svaret. Jag tänker utveckla det.

Vi kan säga att det är ett dämpat oscillerat system med två massor. En massa på 10 kg och en annan massa på 2 kg. Ena fjädern är på 40 N/m och andra är på 50 N/m.Antag att vi har detta system. 

M = 10002, C = (c1+c2)-c2-c2c2, K=90-40-4040, x = yz

Då kan vill jag sätta värden på c1, c2 så dämpningen följer denna kurva på ζ=0.7.

Då kan jag räkna ut egenfrekvensen igenom att använda mig av determinanten:

det(K-λM) =0  det(90-40-4040-λ10002)=0

Då får jag:

λ1=ω12=4 rad/s , λ2=ω22=25 rad/s 

Egenvektorerna räknar jag ut igenom att använda mig av

(90-40-4040-4*10002)*ϕ1=4*ϕ1

(90-40-4040-25*10002)*ϕ2=25*ϕ2

Då får jag:

ϕ1=45-5411, ϕ2=4-1411

Dessa tolkar jag som att massa 1 gungar ned med 4/5 eller (-5/4) meter och massa 2 gungar ned 1 meter om det är 4 rad/s i svängning?

Då kan jag väll säga att:

C1=ϕ1-TCg,1ϕ1-1=2041-2041254116412*0.7*4002*0.7*25451-541=2.332-0.4997-0.49972.107

Eller om jag vill använda andra egenvektorn:

C2=ϕ2-TCg,2ϕ2-1=417-41711716172*0.7*4002*0.7*25417117-4171617=0.5426-1.511-1.5116.21

 

Nu är jag rätt vilsen:

1. Har jag gjort rätt?

2. Hur hittar jag c1,c2 ?

Heretic 90
Postad: 3 jun 2017 22:02
Henrik Eriksson skrev :

Man gör ett linjärt variabelbyte för att få ett enklare system att lösa.

Hej Henrik!

Jag har gett ett exempel ovan. Jag har kommit en lång bit nu, men inte riktigt hittat dämpningen.

Heretic 90
Postad: 4 jun 2017 00:00

 Hej igen! Nu gör jag ett försök till!

Jag har mina K och M matrisen och jag har λ1=ω12=4 rad/s, λ2=ω22=25 rad/s

Då börjar jag räkna ut basbytematrisen Φ

(K-λ1M)*u = 00(90-40-4040-4*10002)*U11U21= 00 U1 =12  

Enligt lAST.Lec19.pdf (Ändra 22 till 19) på hemsidan (se första post) på paragraf 19.3.3 så ska man göra så här(Euclidean length):

ϕ1=1U1T*U1*U1=0.447210.89443

Och sedan nästa egenvärde:

(K-λ2M)*u = 00(90-40-4040-25*10002)*U11U21= 00 U2 =11  

ϕ2=1U2T*U2*U1=-0.707110.70711

Nu sätter jag ihop i basbytesmatrisen:

Φ = [ϕ1 ϕ2] =0.44721-0.707110.894430.70711

Jag säger att diagonalmatrisen av dämpningsmatrisen Cd är:

CD=2*ζ*ω1002*ζ*ω2=2*0.7*4002*0.7*25

För att hitta den riktiga dämpningsmatrisen C så gör jag så här:

C = Φ-TCDΦ-1=0.74536-0.942810.745360.471402*0.7*4002*0.7*2500.745360.74536-0.942810.47140=7.7778-1.5556-1.55563.1111

Viktig sida är sida är 22-10 i lAST.Lect22.pdf.

Men Jag ser ingen koppling mellan:

(c1+c2)-c2-c2c27.7778-1.5556-1.55563.1111

 

Så något är skumt här!

Heretic 90
Postad: 4 jun 2017 01:08

 Det är fel värden i matriserna K och M. Det ska vara:
K = [9 -3; -3 3];
M = [2 0; 0 1];

Då stämmer det. Men C matrisen stämmer inte.

dioid 181
Postad: 4 jun 2017 11:59

Det kommer inte bli exakt likhet eftersom den diagonala CD är en approximation till Cg men det verkar vara lite väl stor skillnad på siffrorna för c2 (1.56 eller 3.11). Såg att de föreslog normalisering med avseende på M, dvs använda UTMU i nämnaren istället för UTU (Euklidisk), när du normerar egenvektorerna (ekv (22.3)). Det kanske ger rimligare svar?

Heretic 90
Postad: 4 jun 2017 14:13 Redigerad: 4 jun 2017 14:18

 

dioid skrev :

Det kommer inte bli exakt likhet eftersom den diagonala CD är en approximation till Cg men det verkar vara lite väl stor skillnad på siffrorna för c2 (1.56 eller 3.11). Såg att de föreslog normalisering med avseende på M, dvs använda UTMU i nämnaren istället för UTU (Euklidisk), när du normerar egenvektorerna (ekv (22.3)). Det kanske ger rimligare svar?

Hej!

Diagonalmatriserna Cd och Cg är samma matris. Det är bara att i dokumenten som jag läser, så skrivs Cd som Cg. Det är matrisen C som jag söker.

Paragraf 19.3.3 så visar dokumentet hur man använder Euklidisk metod.

http://www.colorado.edu/engineering/CAS/courses.d/Structures.d/IAST.Lect19.d/IAST.Lect19.pdf

Men varför? Varför ska man göra om en egenvektor av ett system? Vad vill åstadkomma egnetligen att normalisera en egenvektor? 

Paragraf 20.2.2 visar en tillämpning:

http://www.colorado.edu/engineering/CAS/courses.d/Structures.d/IAST.Lect20.d/IAST.Lect20.pdf

Jag har gjort en MATLAB/OCTAVE cod som visar mina beräkningar.

Jag kanske får anpassa mina fysikaliska val av dämpare efter vad dämpningsmatrisen C säger?


pkg load symbolic % OCTAVE endast
syms lambda

K = [9 -3; -3 3]; % Styvhetsmatris
M = [2 0; 0 1]; % Massmatris

% Egenvärde - Egenfrekvens med lambda(1,1)
lambda = solve(det(K-lambda*M) == 0, lambda);

% Räkna ut en egenvektor
U1 = null(double((K-lambda(1,1)*M)))
% Gör något skumt med denna egenvektor som jag inte vet varför?
U1 = 1/sqrt(U1'*U1)*U1;

% Räkna ut en egenvektor med lambda(2,1)
U2 = null(double((K-lambda(2,1)*M)))
% Samma skumma metod igen...
U2 = 1/sqrt(U2'*U2)*U2;

% Basbytesmatrisen
PHI = [U1 U2]

% Diagonalmatrisen Cg
Cg = [2*0.7*sqrt(lambda(1,1)) 0; 0 2*0.7*sqrt(lambda(2,1))]

% Räkna ut dämpningsmatrisen
C = inv(PHI')*Cg*inv(PHI);
% Visa endast decimaler.
C = vpa(C, 5)

>> C = (sym 2×2 matrix)

⎡ 4.0008     -0.57155⎤
⎣-0.57155     1.7146 ⎦

Heretic 90
Postad: 4 jun 2017 20:48

 Seriöst!

Finns det ingen metod för att dimensionera dämpning i ett system??????

Heretic 90
Postad: 5 jun 2017 12:30

Är inte tanken med diagonalisering att om man har flera ekvationer av:

a + b + c = d

Så kan man uttrycka dem i matrisform, där D är en vektor:

A+B+C=D

Om vi vet matris A och B, men inte C. Då ska man kunna skriva A, B och C på ett diagonalt sätt? Eller hur? 

Min tanke är att man adderar ihop A och B så det blir AB. Sedan hittar man egenvärden för AB.

det(λ*I-AB)=0

Och sedan hittar man egenvärden för AB.

(AB-λn*I)*vn = 0

Och då skapar man en basbytesmatris av egenvektorerna:

ϕ=[v1 v2  vn]

Och då kan man skriva om A + B + C = D så här:

ϕTAϕ+ϕTBϕ+ϕTCϕ= ϕTD

Och då har man diagonaliserat alla matriser. Då kan man lösa ut vad C är för matris då C är diaognaliserad. 

För att sedan få den riktiga C matrisen så gör man så här:

C = ϕ-TϕTCϕϕ-1, ϕTCϕ = c10000c200000000cn

 

Eller? 

Svara Avbryt
Close