%bu program DSA 1. projesinin farkli bir A matrisi için çözmektedir. %önce aciklama yapalim syms k t; %bu komut araciligla sembolik degiskenleri tanimliyoruz. A=[-1 k; 1 -1]; %2x2 lik bir A matrisi olusturduk, matris k nın bir fonksiyonu aynı zamanda ozdegerler=eig(A) %bu komut ile her matrisin özdeğerlerini bulabiliriz.Bir vektör olarak... %Matris bir sembolik değişkene bağlı olsa bile... Satır sonuna noktalı %virgül koymadık; ki işlem sonucunu ekranda görelim. %b şıkkı %Burada ksol ve ksağ değerlerini rastgele değerleri deneyerek bulacağız; %siz ise, ödevde, aşağıdaki programı kullanmadan k'yı kendiniz belirleyebilirsiniz. Tamsayı olarak %belirlerseniz, sonraki işlemlerin süresi azalır. bitti=0; while bitti==0 k=rand*10-5;%rand 0 ile 1 arasında rastgele sayı üretir if max(real(eig(subs(A,k))))<0%subs komutu ile rastgele belirlediğimiz k değerini koyarak A'yı hesaplıyoruz. % real komutu vektörün elemanlarının reel kısmını alıyor. max % malumunuz ksol=k bitti=1;%döngüden çıkalım artık diye end end bitti=0; while bitti==0 k=rand*10-5; if max(real(eig(subs(A,k))))>0 ksag=k bitti=1; end end %c şıkkı durum_gecis_ksolicin=expm(subs(A,ksol)*t)%expm komutu matris üstellerini hesaplamak için kullanılır. durum_gecis_ksagicin=expm(subs(A,ksag)*t) %d şıkkını iki yolla da yapabiliriz. Bir; durum gecis matrisi ile ilk %koşulu çarparak... İki; diferansiyel denklemi Euler açılımı ile zamanda %ayrıklaştırarak.... %ilk koşulları oluşturalım x_0_1=[1 0 ]';%üssü işareti transpoze almak için x_0_2=[0 1 ]'; % %birinci yol % %birinci ilk koşul için çözümü çizdirelim % subplot(2,2,1)%2x2 lik bir figürler penceresi açar ve 1. figürü çizer. % cozum_1_sol=durum_gecis_ksolicin*x_0_1; % plot([0:0.1:50],subs(cozum_1_sol(1,:),[0:0.1:50]),'r') % hold on % plot([0:0.1:50],subs(cozum_1_sol(2,:),[0:0.1:50]),'b') % legend('x_1','x_2') % title('ksol ve x_0_1 için') % xlabel('t') % ylabel('x(t)') % hold off % % % subplot(2,2,2)%2x2 lik bir figürler penceresine 2. figürü çizer. % cozum_1_sag=durum_gecis_ksagicin*x_0_1; % plot([0:0.1:50],subs(cozum_1_sag(1,:),[0:0.1:50]),'r') % hold on % plot([0:0.1:50],subs(cozum_1_sag(2,:),[0:0.1:50]),'b') % legend('x_1','x_2') % title('ksag ve x_0_1 için') % xlabel('t') % ylabel('x(t)') % hold off % %ikinci ilk koşul için çözümü çizdirelim % subplot(2,2,3)%2x2 lik bir figürler penceresine 3. figürü çizer. % cozum_2_sol=durum_gecis_ksolicin*x_0_2; % plot([0:0.1:50],subs(cozum_2_sol(1,:),[0:0.1:50]),'r') % hold on % plot([0:0.1:50],subs(cozum_2_sol(2,:),[0:0.1:50]),'b') % legend('x_1','x_2') % title('ksol ve x_0_2 için') % xlabel('t') % ylabel('x(t)') % hold off % % % subplot(2,2,4)%2x2 lik bir figürler penceresine 4. figürü çizer. % cozum_2_sag=durum_gecis_ksagicin*x_0_2; % plot([0:0.1:50],subs(cozum_2_sag(1,:),[0:0.1:50]),'r') % hold on % plot([0:0.1:50],subs(cozum_2_sag(2,:),[0:0.1:50]),'b') % legend('x_1','x_2') % title('ksag ve x_0_2 için') % xlabel('t') % ylabel('x(t)') % hold off %İkinci yol nu=0.1%euler adımı subplot(2,2,1)%2x2 lik bir figürler penceresi açar ve 1. figürü çizer. sayac=0; x(:,1)=x_0_1; for t=0:nu:50 sayac=sayac+1; t_ekseni(sayac)=t; x(:,sayac+1)=x(:,sayac)+nu*subs(A,ksol)*x(:,sayac); end t_ekseni(sayac+1)=50+nu; plot(t_ekseni,x(1,:),'r') hold on plot(t_ekseni,x(2,:),'b') legend('x_1','x_2') title('ksol ve x_0_1 için') xlabel('t') ylabel('x(t)') hold off subplot(2,2,2)%2x2 lik bir figürler penceresine 2. figürü çizer. sayac=0; x(:,1)=x_0_1; for t=0:nu:50 sayac=sayac+1; t_ekseni(sayac)=t; x(:,sayac+1)=x(:,sayac)+nu*subs(A,ksag)*x(:,sayac); end t_ekseni(sayac+1)=50+nu; plot(t_ekseni,x(1,:),'r') hold on plot(t_ekseni,x(2,:),'b') legend('x_1','x_2') title('ksag ve x_0_1 için') xlabel('t') ylabel('x(t)') hold off subplot(2,2,3)%2x2 lik bir figürler penceresine 2. figürü çizer. sayac=0; x(:,1)=x_0_2; for t=0:nu:50 sayac=sayac+1; t_ekseni(sayac)=t; x(:,sayac+1)=x(:,sayac)+nu*subs(A,ksol)*x(:,sayac); end t_ekseni(sayac+1)=50+nu; plot(t_ekseni,x(1,:),'r') hold on plot(t_ekseni,x(2,:),'b') legend('x_1','x_2') title('ksol ve x_0_2 için') xlabel('t') ylabel('x(t)') hold off subplot(2,2,4)%2x2 lik bir figürler penceresine 2. figürü çizer. sayac=0; x(:,1)=x_0_2; for t=0:nu:50 sayac=sayac+1; t_ekseni(sayac)=t; x(:,sayac+1)=x(:,sayac)+nu*subs(A,ksag)*x(:,sayac); end t_ekseni(sayac+1)=50+nu; plot(t_ekseni,x(1,:),'r') hold on plot(t_ekseni,x(2,:),'b') legend('x_1','x_2') title('ksag ve x_0_2 için') xlabel('t') ylabel('x(t)') hold off