lab Modelownie liniowych układów dyskretnych

> restart:

> with(LinearAlgebra): with(plots):

> #sortowanie proc

>

> #Zad1

> E:=1/2*m*add(v[i]^2,i=1..5):

> U:=1/2*k*add((x[i+1]-x[i])^2,i=1..4):

>

> #Zad2

> n:=5:

> K:=Matrix(n):

> M:=Matrix(n):

> for i to n do

for j to n do

K[i,j]:=diff(U,x[i],x[j]);

M[i,j]:=diff(E,v[i],v[j]);

end do;

end do;

> K:

> M:

>

> #Zad3

> A:=1/M.K:

>

> #Zad4

> m:=1: k:=100:

> alpha,V:=evalf(Eigenvectors(A)):

>

> #Zad5

> alpha,V:=sortowanie(alpha,V):

>

> #Zad6

> for i from 1 to n do

w[i]:=V[1..n,i]/(sqrt((V[1..n,i]^%T).M.V[1..n,i])):

end do:

>

> #Zad7

> for i from 1 to n do

omega[i]:=sqrt(alpha[i])

end do:

>

> #Zad8

> x0:=Vector(5,[0,0,0,0,0]):

> v0:=Vector(5,[10,0,0,0,0]):

>

> #Zad9

> x:=(Transpose(w[1]).M.(x0+v0*t))*w[1]+add((Transpose(w[1]).M.(x0*cos(omega[i]*t)+v0*sin(omega[i]*t)/omega[i]))*w[i], i=2..5):


Wyszukiwarka