Documente Academic
Documente Profesional
Documente Cultură
PROGRAMING in:
Programming in MATLAB
Page 2
Programming in MATLAB
b = 7 7 7 8 6 7 9 5 6 0 8 8
c = 133 119 147 132 118 146 123 117 137 112 72 120
Page 3
Programming in MATLAB
CODING IN M FILE clear all clc A=input('Enter the square m*m matrix:') as=size(A); m=as(1); for (i=1:m) for(j=1:m) sum=0; c=0; if (i<j) break; elseif(i==j) for (k=1:j-1) sum=sum+(L(j,k))^2; end L(j,j)=((A(j,j)-sum))^0.5; else for(k=1:j-1) c=c+(L(i,k)*L(j,k)); end L(i,j)=(A(i,j)-c)/L(j,j); end end end for(i=1:m) for (j=1:m) U=transpose(L); end end disp('The lower triangular matrix is:') disp(L) disp('The upper triangular matrix is:') disp(U)
Page 4
Programming in MATLAB
A =
1 3 4 6
3 5 2 8
4 2 9 3
6 8 3 0
Page 5
Programming in MATLAB
Exercise 3: USING CHOLESKY DEPOSITION TO SOLVE SET OF LINEAR EQUATIONS (FORWARD AND BACKWARD SUBSTITUTION)
Solve the following set of equations: 8z+4y+2j+0K=24, 4z+10y+5j+4k=26, 2z+5y+6.5j+4k=26, 0z+4y+4j+9k=21, CODING IN M FILE % A=[8 4 2 0;4 10 5 4;2 5 6.5 4;0 4 4 9] % x=[z;y;j;k] % b=[24;26;26;21] %Ax=b %LUx=B %forward substitution: solve for y-----> Ly=b----> y=inv(L)b %backward substitution: solve for x-----> y=Ux------> x=inv(U) clear all clc A=[8 4 2 0;4 10 5 4;2 5 6.5 4;0 4 4 9] b=[24;26;26;21] as=size(A); m=as(1); %choleski factorization for (i=1:m) for(j=1:m) sum=0; c=0; if (i<j) break; elseif(i==j) for (k=1:j-1) sum=sum+(L(j,k))^2; end L(j,j)=((A(j,j)-sum))^0.5; else for(k=1:j-1) c=c+(L(i,k)*L(j,k)); end L(i,j)=(A(i,j)-c)/L(j,j);
Page 6
Programming in MATLAB
end end end for(i=1:m) for (j=1:m) U=transpose(L); end end %forward substitution y=inv(L)*b %backward substitution x=inv(U)*y
SOLUTION IN COMMAND WINDOW A = 8.0000 4.0000 2.0000 0 b = 24 26 26 21 y = 8.4853 4.9497 6.5000 3.0619 x = 2.4375 -0.1875 2.6250 1.2500 4.0000 10.0000 5.0000 4.0000 2.0000 5.0000 6.5000 4.0000 0 4.0000 4.0000 9.0000
Page 7
Programming in MATLAB
CODING IN M FILE clear all clc M=[100 0 0 0 0; 0 100 0 0 0; 0 0 100 0 0; 0 0 0 100 0; 0 0 0 0 100]; %kc=2*12EIc E=2*10^6; I=0.0108; %in m^4 h=3; k1=(2*12*E*I)/(h^3); k2=k1;k3=k1;k4=k1;k5=k1; K=[k1 -k1 0 0 0;-k1 k1+k2 -k2 0 0;0 -k2 k2+k3 -k3 0; 0 0 -k3 k3+k4 k4; 0 0 0 -k4 k4+k5]; %mode shapes and omega [modeshape,omega]=eig(inv(M)*K) %determination of frequancy matrix freq=zeros(5); for i=1:5 freq(i,i)=omega(i,i)^0.5; end
Page 8
Programming in MATLAB
freq %in rad/sec % plotting 1st mode shape for i=1:5 for j=1 modeshape1(i,j)=modeshape(i,1); end end y=15:-h:3; x=modeshape1; plot(x,y,'b-') xlabel('Displacement') ylabel('Height') Axis([-0.1,1,0,16]) title('MODAL ANALYSIS(10/CE/61)') SOLUTION IN COMMAND WINDOW modeshape = 0.5969 0.5485 0.4557 0.3260 0.1699 0.5485 0.1699 -0.3260 -0.5969 -0.4557 0.4557 -0.3260 -0.5485 0.1699 0.5969 -0.3260 0.5969 -0.1699 -0.4557 0.5485 0.1699 -0.4557 0.5969 -0.5485 0.3260
0 0 0 0 26.5902
Programming in MATLAB
Page 10
Programming in MATLAB
Exercise 5: SECOND ORDER DIFFERENTIAL EQUATION BY APPLYING NEWTON RAPHSON METHOD Example problem: Spring mass damper system: Plot the response of a forced system given
by the equation
m + c + kx =f sint For = 0.1; m = 1 kg; k = 100 N/m; F = 100 N; = 2n; x(0) = 2 m;0
= 10 rad/sec
Damped natural frequency d = n = 9.95 rad/sec. Damped time period Td = 2/d = 0.63 sec. (Therefore, for five time cycles the interval should be 5 times the damped time period, i.e., 3.16sec. Since the plots should indicate both the transient and the steady state response, the time interval will be increased) CODING IN M FILE function myode clc clear all [t,x]=ode45(@func,[0 5],[0.02 0]); plot(t,x(:,1),'m-'); xlabel('time'); ylabel('Displacement'); title('ODE45 by Miaaza Hussain, 10/CE/61') function rk=func(t,x) mass=1; omega=9.95; c=2; F=100; k=100; rk=[x(2);(F/mass*sin(omega*t))-(k*x(1)/mass)-(c*x(2)/mass)]; end
Page 11
Programming in MATLAB
Page 12