39

Click here to load reader

Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Embed Size (px)

Citation preview

Page 1: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

08.04.2006

SAÜ MÜH.FAK.ELK-ELN. MÜH.BÖL. SAYISAL ANALĐZ VĐZE SINAV SORULARI ve ÇÖZÜMLERĐ

S1) yexyxf 2sin2),(1 += -1

2),( 322 −−−+= yyxxyxf

denklem sisteminde, 0)0( =x ; 0)0( =y başlangıç koşulları altında;

a) denklem sistemini Newton Raphson yaklaşımını kullanarak birinci iterasyon adımı sonundaki )1(x ve

)1(y değerlerini elle hesaplayarak bulunuz.

b) denklem sistemini Gauss-Seidel yaklaşımını kullanarak birinci iterasyon adımı sonundaki )1(x ve

)1(y değerlerini elle hesaplayarak bulunuz.

Not: Yukarıdaki çözümlerde hiçbir MATLAB komutu kullanılmadan kitabınızda verilen algoritmadaki hesaplar

elle gerçekleştirilecektir.

Şekil 1

S2) Şekil 1'de verilen devrede A, B, C elemanları lineer olmayan dirençlerdir. Bu dirençlere ilişkin tanım

bağıntıları ise aşağıda verilmiştir:

42 31 += ivA ⇒ :Av A direncine ilişkin uç gerilimi

:1i A direncine ilişkin akım

12 32 += ivB ⇒ :Bv B direncine ilişkin uç gerilimi

:2i B direncine ilişkin akım

22 33 += ivC ⇒ :Cv C direncine ilişkin uç gerilimi

:3i C direncine ilişkin akım

1i , 2i ve 3i akımlarını bulunuz.

S3) Karenin, dikdörtgenin ve yamuğun alanlarını hesaplayan bir program yazılacaktır. Kullanıcıya ilk olarak 'kare, dikdortgen ve yamuktan hangisinin alanini hesaplamak

istiyorsunuz?' diye sorulacak, kullanıcı klavye ile 'kare' yazdığında, kullanıcıdan karenin bir kenar

uzunluğunu girmesi istenecektir. Eğer şekil dikdortgen ise ' kisa kenari girin ' ve ' simdi de

uzun kenari girin ' ifadesi kullanıcıya yöneltilecektir. Eğer şekil yamuk ise ' alt kenari

girin ' , ' ust kenari girin ' ve ' yuksekligi girin ' ifadesi kullanıcıya yöneltilecektir. Her

bir işlemden sonra (istenen şekle göre) 'karenin alanı=' vb. ifadeleri takiben hesaplanan alanın

değeri kullanıcıya bildirilecektir. Tüm işlemler bittikten sonra kullanıcıya 'başka alan hesabi

yaptirmak istiyormusunuz?' sorusu yöneltilecek, eğer cevap 'evet' ise programın başındaki

işlemler tekrar yapılacak 'hayir' ise başından beri yapılan tüm alan hesaplamalarının sayısı kullanıcıya

bildirilerek program sona erdirilecektir.

E=10 volt

)t(i1 )t(i2 )t(i3

A

B C

www.eemder

snotla

ri.com

Page 2: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

08.04.2006

Cevap 1) a) 0)0( =x ; 0)0( =y

A= )0()0()0()0()0(1 2sin2),( yexyxf += -1=2*0+2*1-1=1

B= 2)()(),( )0(3)0()0(2)0()0()0()0(2 −−−+= yyxxyxf =-2

−=

==∆−

2

1),(),(

)0()0()0()0()0(

B

AyxFXyxJ

=

==

==

)0()0(

)0()0(

22

11

yyxx

xyxx

y

f

x

f

y

f

x

f

J =

−=

−−+11

22

1312

2)cos(22

)0(

)0()0(

)0(

yx

exy

)0()0()1( XXX ∆+= =

−−

=−= −

2

1

5.025.0

5.025.0

0

0),(*

)0()0(1)0()1(yxFJXX

−=

25.1

75.0)1(X

b) Gauss Seidal yöntemi lineer olmayan denklem sistemlerine uygulanamaz.

Cevap 2) Verilen devreye Kirchhoff gerilim ve akım yasası uygulanır ise;

=10 4)(2 31 +ti + 1)(2 3

2 +ti

1)(2)( 32 += titvB = )(2)(2 3

3 tvti C=+

)()()( 321 tititi +=

>> x0=[0,0,0]; ('enter')

>> [xdeger,fonkdeger,kontrol]=fsolve('vize_2006',x0) ('enter')

Optimization terminated: first-order optimality is less than options.TolFun. xdeger = 1.2447 0.8298 0.4149 fonkdeger = 1.0e-012 * 0.6661 -0.3407 -0.0011 kontrol = 1 function F=vize_2006(X) F=[2*X(1)^3+2*X(2)^3-5; 2*(X(2)^3)-2*X(3)^3-1; X(1)-X(2)-X(3)];

Cevap 3) sayac=0; syms h e devam devam=e; while devam==e disp('kare, dikdortgen ve yamuktan hangisinin alanini hesaplamak istiyorsunuz?'); A=input('kare ise "k",dikdortgen ise "d", yamuk ise "y" yaziniz','s'); sayac=sayac+1; if A=='k' kenar=input('kare nin bir kenarinin uzunlugunu giriniz');

www.eemder

snotla

ri.com

Page 3: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

08.04.2006

disp('kare nin alani') Alan=kenar^2 elseif A=='d' kenar1=input('dikdortgenin kisa kenarinin uzunlugunu giriniz'); kenar2=input('dikdortgenin uzun kenarinin uzunlugunu giriniz'); disp('dikdortgenin nin alani') Alan=kenar1*kenar2 elseif A=='y' alt=input('yamugun alt taban uzunlugunu giriniz'); ust=input('yamugun ust kenar uzunlugunu giriniz'); yukseklik=input('yamugun yuksekligini giriniz'); disp('yamugun alani') Alan=(alt+ust)*yukseklik/2 end disp('baska alan hesabi yapmak istiyormusunuz?') devam=input('evet ise "e",hayir ise "h" yaziniz','s'); if devam==h disp('hesaplanan alan sayisi') sayac else end end

www.eemder

snotla

ri.com

Page 4: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

SAYISAL ANALĐZ YAZ OKULU VĐZE SINAV SORULARI (17/07/2006) Soru 1)

Şekil 1 Şekil 2

Şekil 1’de verilen devreye ilişkin yük akımı şekil 2’de çizilmiştir. i(t) akımına ilişkin genel ifade aşağıda

gösterilmiştir;

i(t)=τ−+ϕ−π /tm Ae)t*f**2sin(

Z

V Amper

)R

L*50**2(tan

1 π=ϕ −

; R/L=τ sn ; Z=|R+j*2*Π *50*L| ohm; f=50 Hz; t=0:0.00001:20*3

10−

sn

)t*50**2sin(V)t(V m π= Volt; ∫==

T

0t

2etkin dt)t(i

T

1I ; ∫=

=

T

0tort dt)t(i

T

1I

Verilen devrede L ve R değeri değiştikçe, şekil 2’de görülen k noktasının yeri sağa veya sola doğru yatay olarak

kaymakta, maxI değeri, i(t) akımının etkin ve ortalama değerleri değişmektedir. Aşağıda verilen 3 farklı mV , R,

L ve A değer setleri için i(t) akımının ortalama, etkin ve maksimum değerlerini hesaplayan bir m dosyası

oluşturunuz.

Vm=[240*sqrt(2) 230*sqrt(2) 210*sqrt(2)]; R=[10 9 8]; L=[0.1 0.12 0.14]; A=[9.81 9 9]; ⇐ 3 ayrı deney seti

Not: Oluşturulacak m dosyası üç adet alt programa dallanacaktır. Bu alt programlarda akımın ortalama, etkin ve

maksimum değerleri hesaplanacak ve ana programa dönülerek program çalışmaya devam edecektir.

81.9A;1.0L;10R);2(sqrt*240Vm ==== değerleri 1. deney setini oluşturmaktadır.

Önemli not: Akım T=20 msn’den önce de sıfır olabilir (k noktası) ,bu durumda k noktası ile T arasında akım sıfır değerini alır. Not: k değerini bulmak için find komutundan faydalanmanız önerilir zira sıfır geçişte akımın sıfır olduğu t anı t’nin adım hassasiyeti nedeni ile bulunamayabilir. Soru 2) Soru 1’de verilen 1. deney seti için i(t) akımının değerlerini kullanarak i(t) akımının 14.dereceden bir

polinom şeklinde denklemini oluşturunuz. Kısaca, i(t)=τ−+ϕ−π /tm Ae)t*f**2sin(

Z

V formunda değil,

mks.....dscsbsas)t(i 11121314 ++++++= formunda elde edilecektir (a,b,c,d,…,k,m bulunacak). Her iki

eğri de aynı eksen takımı üzerine çizdirilerek eğriler kontrol edilecektir.

Soru 3) Soru 1’de verilen 3. deney seti için elde edilen i(t) akım eğrisinin altında kalan alanı hesaplayınız.

Soru 4) Soru 1’de verilen t aralığında, 2. deney seti değerleri için ele edilen i(t) akımını bilgisayara en kısa

sürede tanıtarak çizdirecek bir m dosyası yazınız. (Yani, yazacağınız m dosyasının başına tic sonuna toc

konulduğunda, sizin elde edeceğiniz elapsed time değerinden daha küçük bir t değeri matlab ortamında

elde edilemesin).

Sınav süresi 80 dakikadır. Notlar açıktır.

Not baremi: 1-40 2-20 3-20 4-20

R

L

i(t)

i(t)

V(t)

t

maxI

k

www.eemder

snotla

ri.com

Page 5: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

SAYISAL ANALĐZ YAZ OKULU VĐZE SINAV CEVAPLARI

Cevap 1) Vm=[240*sqrt(2) 230*sqrt(2) 210*sqrt(2)];

R=[10 9 8]; L=[0.1 0.12 0.14]; A=[9.81 9 9];

fi=atan(2*pi*50*L./R);

Z=abs(R+j*2*pi*50*L);

to=L./R

t=0:0.00001:20*10^-3;

for k=1:3

akim=(Vm(k)/Z(k))*sin(2*pi*50*t-fi(k))+A(k)*exp(-t./to(k));

figure(k)

plot(t,akim)

sec1=(akim>=0);

ff=sec1.*akim;

ortalama(k)=ortbul(ff)

etkin(k)=etkinbul(ff)

maksimum(k)=maksbul(ff)

end

Cevap 2) Vm=[240*sqrt(2)]; R=[10]; L=[0.1]; A=[9.81];

fi=atan(2*pi*50*L./R);

Z=abs(R+j*2*pi*50*L);

to=L/R

t=0:0.0001:20*10^-3;

akim=(Vm/Z)*sin(2*pi*50*t-fi)+A*exp(-t./to);

sec1=(akim>=0);

ff=sec1.*akim;

a=polyfit(t,ff,15) % 15.dereceden denklem uyduruluyor

plot(t,ff)

hold on

c=polyval(a,t)

plot(t,c)

Cevap 3) Vm=[210*sqrt(2)]; R=[8]; L=[0.14]; A=[9];

fi=atan(2*pi*50*L./R);

Z=abs(R+j*2*pi*50*L);

to=L/R

t=0:0.0001:20*10^-3;

akim=(Vm/Z)*sin(2*pi*50*t-fi)+A*exp(-t./to);

sec1=(akim>=0);

ff=sec1.*akim;

alan=trapz(t,ff)

Cevap 4) tic

Vm=[210*sqrt(2)]; R=[8]; L=[0.14]; A=[9];

fi=atan(2*pi*50*L./R);

Z=abs(R+j*2*pi*50*L);

www.eemder

snotla

ri.com

Page 6: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

to=L/R

t=0:0.0001:20*10^-3;

akim=(Vm/Z)*sin(2*pi*50*t-fi)+A*exp(-t./to);

sec1=(akim>=0);

ff=sec1.*akim;

toc

www.eemder

snotla

ri.com

Page 7: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 08.04.2007

SAÜ MÜH.FAK.ELK-ELN. MÜH.BÖL. SAYISAL ANALĐZ VĐZE SINAV SORULARI

S1)

Şekil 1

Şekil 1’de verilen devrede bobinin uçları arasındaki gerilim değeri, τ−−+= /tsonilksonL e)VV(V)t(V ifadesi ile

değişmektedir. sn 21/2R/L ,V10V ,0V ilkson ===τ== olduğuna göre ve t=0 anında A anahtarı kapatıldığına göre; (tüm

şıkları yalnızca matlab komutları ile yaparak); a) )t(VL geriliminin değişimini, t=0:0.0001:10 saniye komutu yardımı ile

çizdiriniz, b) Eğer bobinin iki ucu arasına t=0:10 saniye aralığındaki bobin geriliminin ortalama değerini ölçen bir voltmetre

bağlanırsa, voltmetrenin hangi değeri göstereceğini bulan matlab programını yazınız, c) t=4 sn sonunda )4t(VL = değerini

bulunuz. d) t=0:10 saniye aralığında bobin geriliminin alabileceği maksimum gerilim değerini bulan matlab komutu üretiniz.

e) )t(VL ’nin 9 Volt dan 3 Volt’ a kadar düşmesi kaç saniye sürmüştür?.

f) dt*)t(VT

1V

T

0

2Letkin,L ∫= olduğuna göre, bobinin uçları arasındaki gerilimin etkin değerini T=10 sn alarak hesaplayınız.

S2) 1e3xsin2)x(f x −+= − lineer olmayan denkleminin x=[0 2*pi] aralığındaki kökünü 0)0( =x başlangıç koşulu altında

(Newton Raphson yaklaşımını kullanarak) ikinci iterasyon adımı sonundaki )3(x değerlerini elle hesaplayarak bulunuz (tüm hesaplamalar elle yapılacak matlab komutu kullanılmayacaktır).Đkinci iterasyon sonunda aranılan köke ulaşılmakta mı dır, nedenini açıklayınız? (epsilon =0.001) alınız.

S3) Şekil 2'de verilen devrede A, B, C elemanları lineer olmayan dirençlerdir. Bu dirençlere ilişkin tanım bağıntıları ise aşağıda verilmiştir:

2i3v 31A −= ⇒ :Av A direncine ilişkin uç gerilimi

:1i A direncine ilişkin akım

1i2v 22B += ⇒ :Bv B direncine ilişkin uç gerilimi

:2i B direncine ilişkin akım

3i4v 33C −= ⇒ :Cv C direncine ilişkin uç gerilimi

:3i C direncine ilişkin akım

Şekil 2

1i , 2i ve 3i akımlarını bulunuz.Yol gösterme: Đki bağımsız göze Kirchhoff gerilim yasası ve D noktasına Kirchhoff akım yasası

uygulayarak elde ettiğiniz üç adet denkleme matlab komutu (fsolve) uygulayınız. x0=[0.1 0 0] Amper alınız. S4) x=[1,2,3,4,5,…..] sıfırdan büyük tam sayıları temsil etsin. i; x’in i. elemanını göstermek şartı ile;

1000

!x

1

x

1)

n

x

x(

n

1i i

n

1i i

n

1i

n

1ii

i

<=

∑∑

+

=

==

=

ifadesini sağlayan n değerini ve bu n değeri için yukarıdaki ifadenin sol tarafının aldığı değeri bulan bir matlab programı yazınız.

S5) Sınav süresi 90 dakikadır. Sınavda kitap ve notlar açıktır. Bunlar masa üstünde ve üstüste

toplu olarak bulunacaktır. Barem: 20 /10 /20 /25/ 25. Sorular öğrencide kalacaktır.

V10E1 =

- +

1Ω A

L=2H

+)t(VL

A E=10 volt

)t(i1

)t(i2 )t(i3

B

C

D

t=0:0.0001:0.02; egri=10*sin(2*pi*50*t);

………………

Yukarıda yazılan program satırlarının altına öyle program satırları daha ilave ediniz ki, program çalıştırıldığında yanda görülen ve değerleri gösterilen hem düz ve hem de kesikli sinüzoidal dalga ele geçsin.

www.eemder

snotla

ri.com

Page 8: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 08.04.2007

Cevap 1) t=0:0.0001:10; L=2; R=1; to=L/R; V_L_t=10*exp(-t/to); plot(t,V_L_t) % sorunun a şıkkı bitti V_L_ort=mean(V_L_t) %sorunun b şıkkı bitti V_L_4saniye=10*exp(-4/to) %sorunun c şıkkı bitti max_V_L_t=max(V_L_t) %sorunun d şıkkı bitti u=find(V_L_t<=9 & V_L_t>=3); talt=t(u(1)); tust=t(u(end)); fark=tust-talt % sorunun e şıkkı bitti

V_L_etkin=sqrt(mean(V_L_t.^2)) % sorunun f şıkkı bitti

Yukarıda verilen matlab satırlarının uygulanması sonucunda elde edilen sonuç değerleri aşağıda verilmiştir; >>

V_L_ort = 1.986554577767227 V_L_4saniye = 1.353352832366127 max_V_L_t = 10 fark = 2.197100000000000 V_L_etkin = 3.162269127110304 >>

Cevap 2) (9.11) eşitliğinden; )x(f

)x(fxx

i'

ii1i −=+ yazılırsa;

i=1 için

;0x1 = (ilk koşul)

3e*3)xsin(*2)x(f 1x11 =+= −

132e*3)xcos(*2)x(f 1x11

' −=−=−= −

)x(f

)x(fxx

i'

ii1i −=+ ⇒ =

−−=−=

1

30

)x(f

)x(fxx

1'

112 3

)x(f

)x(fxx

2'

223 −= ; 431.0e*3)xsin(*2)x(f 2x

22 =+= − ; 129.2e*3)xcos(*2)x(f 2x22

' −=−= −

=−

−=−=129.2

431.03

)x(f

)x(fxx

2'

223 3.202⇒ <=−=− 202.33xx 23 epsilon olmadığı için iterasyon devam eder.

www.eemder

snotla

ri.com

Page 9: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 08.04.2007

Cevap 3) Şekil 2’de sol göze Kirchhohh gerilim yasası uygulanırsa; 0Evv BA =−+

ve şekil 2’de sol göze Kirchhohh gerilim yasası uygulanırsa; 0Evv BC =−+

ve şekil 2’de D noktasına Kirchhohh akım yasası uygulanırsa;

0iii 231 =−+

elde edilir. Elde edilen 3 adet eşitlik lineer olmayan denklem içerdiğinden fsolve komutu kullanılarak çözülebilir; >> x0=[0.1 0 0];

>> [x,fonkdeger,kontrol]=fsolve(‘nonlineer’,x0)

Yukarıdaki command window satırlarında çalıştırılan alt program satırları ise aşağıda verilmiştir: function F= nonlineer(X) A=3*X(1)^3-2; B=2*X(2)^2+1; C=4*X(3)^3-3; E=20; F=[A+B-E; % sol göze KGY uygulandı B+C-E; % sağ göze KGY uygulandı X(1)-X(2)+X(3)]; % D noktasına KAY uygulandı Yukarıda verilen program satırlarının uygulanması sonucunda elde edilen değerler aşağıda verilmiştir:

>> x = 1.344072792110124 2.618746818692541 1.274674026582416 fonkdeger = 1.0e-012 * 0.035527136788005 0.170530256582424 -0.000222044604925 kontrol = 1 % sonucun doğru olduğunu belirtiyor

Cevap 4)

n=0; ttoplam=0; ort=0; tcarp=0; toplam=0; sonuc=0; while sonuc <= 1000 n=n+1; toplam=toplam+n; ttoplam=ttoplam+1/n; ort=toplam/n; tcarp=tcarp+1/prod(1:n); cevap=sonuc; % bir önceki adımdaki sonuc degeri hafızaya alınıyor sonuc=(toplam+ort)*ttoplam/tcarp end cevap n-1

Önemli açıklama: Yukarıdaki satırlarda n’in son değerinde sonuç, 1000’i geçtiğinde program çalışmaya devam edecektir, zira n’in sondan bir önceki değeri için sonuc değeri 1000’in altında kaldığından program çalışmaya devam ederek n’i bir artıracaktır. Fakat n’in bu artışında sonuc, yeni iterasyon sonrasında 1000’i geçecektir ve bu durumda programın ön koşulu sağlanmamış olur. Bu nedenle 1000 sayısını geçen ilk sonuc değerinde n değeri 1 azaltılarak bir önceki sonuc değeri gerçek

www.eemder

snotla

ri.com

Page 10: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 08.04.2007

sonuc olarak yazdırılmalıdır. Sonucun bir önceki iterasyondaki değeri cevap olarak hafızada tutulduğu için aranan sonuç değeri cevap adlı değişken olacaktır. Aranan iterasyon sayısı ise n-1 olacaktır.

Cevap 5)

t=0:0.0001:0.02; egri=10*sin(2*pi*50*t); egri1=egri+15; hold on plot(t,egri1,'--') axis([0 0.02 0 30]) aa=length(t); for k=1:aa if egri1(k)>=22 egri1(k)=22; elseif egri1(k)<=7 egri1(k)=7; end end plot(t,egri1) title('kırpılmış ve yukarı ötelenmiş sinüs dalgası') grid on

www.ee

mdersn

otlari.c

om

Page 11: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu 14/07/2008

SAÜ.MÜH.FAK.ELK-ELN.MÜH.BÖL. SAYISAL ANALĐZ YAZ OKULU VĐZE SINAV SORULARI

Soru 1) % xt^3 +yt^2 + zt+w polinom değerinin hesaplanması x=1; y=1; z=1; w=1; t=0;

while x~=0 | y~=0 | z~=0 | w~=0 | t~=0

x = input('yeni bir x katsayısını gir: '); y = input('yeni bir y katsayısını gir: '); z = input('yeni bir z katsayısını gir: '); w = input('yeni bir w değerini gir: '); t = input('yeni bir t değerini gir: '); if imag(t)~=0, 't değeri karmaşık sayı olduğundan dolayı iterasyon sona erdi' break end polinom = x*t^3 + y*t^2 + z*t+w; 'polinomun değeri' disp(polinom) end

if imag(t)==0, ' x=y=z=t=0 olduğundan dolayı program sona erdi ' end

Yukarıda verilen programın işaret akış diyagramını if (baklava şeklinde) ve uygula (dikdörtgen şeklinde) blokları ile çıkarınız. NOT: while ile gösterilen bir işaret akış bloğu olmadığını hatırlayınız.

Soru 2) ......)3

1

2

1(*

7

1)

3

1

2

1(*

5

1)

3

1

2

1(*

3

1)

3

1

2

1(A

443322++++++++=

↑terim.1 ↑terim.2 ↑terim.3 ↑terim.4 …………….. Yukarıda A sayısının seri karşılığı verilmiştir. Seri açılımın toplamını 1.00339’dan büyük yapan ilk terim sayısını ve bu terim için A değerini bulan MATLAB programını yazınız. Format olarak long komutu kullanılacaktır. Soru 3) Bir silindirik kabuğa ilişkin; A (Đç yarıçapı), B (dış yarıçapı), delta (yoğunluğu), r (bulunulan noktanın silindir merkezinden olan uzaklığını) göstermektedir. Silindirik kabukta silindir merkezinden r kadar uzaklıktaki bir noktaya ilişkin yerçekimsel potansiyel değerleri;

>−

≤≤−−

<−

=

Br ),r*3/()A(B*delta*pi*4

BrA ),r*3/(A*delta*pi*4)r3

1(B*delta*pi*2

Ar ),AB(*delta*pi*2

V

32

322

22

r

ifadesi ile hesaplanmaktadır. Yukarıda da görüldüğü gibi r’nin çeşitli değerleri için rV formülleri değişmektedir. Öyle bir MATLAB programı yazınız ki; r=0:0.01:10, A=3; B=8; delta=1.2

değerleri için r=[0:10] aralığında potansiyel değişimini ( )r(fV = ) çizdirsin.

www.eemder

snotla

ri.com

Page 12: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu 14/07/2008

Soru 4)

a) 0xxln3xf 22111 =−+=

01x5xxx2f 121212 =+−−=

Yukarıda verilen denklem sisteminde 1x )0(1 = ; 1x )0(

2 = olarak verilmektedir. 1x ve 2x

değerlerini bulan ve bunların doğruluğunu kontrol eden matlab programını yazınız. b) Yukarıda verilen denklem sistemine ilişkin (verilen ilk koşulları kullanarak) Jacobien matrisinin ilk iterasyon sonundaki değerini elle hesaplayınız.(matlab komutu kullanılmayacak)

c) Yukarıda verilen iki yüzeyi ]4;1[x1 = , ]4;1[x 2 = aralıklarında 0.1 hassasiyetle alta alta çizdiren matlab programını yazınız. Barem: 1-30 2-20 3-20 4-30

Notlar açıktır (masa üzerinde dağınık olmayacaktır Sınav süresi 80 dakikadır

Başarılar Dilerim

Prof.Dr.Uğur Arifoğlu

www.eemder

snotla

ri.com

Page 13: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu 14/07/2008

Çözümler

Cevap 1)

BAŞLA

x=1; y=1; z=1; t=0

x=0

y=0 z=0 w=0

E

H

E E E

H H H H

imag(t)=0 E

‘ x=y=z=t=0 olduğu için iterasyon sona erdi’

DUR

x = input('yeni bir x katsayısını gir: ');

y = input('yeni bir y katsayısını gir: ');

z = input('yeni bir z katsayısını gir: ');

w = input('yeni bir w katsayısını gir: ');

imag(t)~= 0

‘t değeri karmaşık olduğu için iterasyon sona erdi’

t = input('yeni bir t katsayısını gir: ');

E

H

H

t=0 E

disp (‘polinom’)

polinom = wztytxt 23 +++

www.eemder

snotla

ri.com

Page 14: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu 14/07/2008

Cevap 2) clear all format long A=0; k=0; while A<1.00339 m=2*k+1; k=k+1; A=A+(1/m)*((1/2)^(k)+(1/3)^(k)); end 'A nın değeri' A 'terim sayısı' k

Cevap 3) A=3; B=8; delta=1.2; r=0:0.01:10; for k=1:length(r) if r(k)<A v(k)=2*pi*delta*(B^2-A^2); elseif A<=r(k) & r(k)<=B v(k)=2*pi*delta*(B^2-(1/3)*r(k)^2)-4*pi*delta*A^3/(3*r(k)); elseif r(k)>B v(k)=4*pi*delta*(B^2-A^3)/(3*r(k)); end end plot(r,v)

Cevap 4) a) >> x0=[1;1]; >>[x, fonksiyondegeri, kontrol, ozellik]=fsolve('yazokulu_2008',x0)

Yukarıda kullanılan yazokulu_2008.m adlı altprogram aşağıda verilmiştir: function G= yazokulu_2008(X) G(1)=X(1)+3*log(X(1))-X(2)^2; G(2)=2*X(1)^2-X(1)*X(2)-5*X(1)+1;

b) 11

1 x/31x

f)1,1(J +=

∂= ; 2

2

1 x2x

f)2,1(J −=

∂= ;

5xx4x

f)1,2(J 21

1

2 −−=∂

∂= ; 1

2

2 xx

f)2,2(J −=

∂=

J=

)2,2(J)1,2(J

)2,1(J)1,1(J (jacobien matris)

J)0(=

)2,2(J)1,2(J

)2,1(J)1,1(J)0()0(

)0()0(

=

−−

12

24

c) [X Y]=meshgrid(1:0.1:4, 1:0.1:4); f1=X+3*log(X)-Y.^2; subplot(2,1,1),surf(X,Y,f1); title('surf komutu f1(x,y) yüzey cizimi'); xlabel('x');ylabel('y');zlabel('z'); f2=2*X.^2-X.*Y-5-X+1; subplot(2,1,2);surf(X,Y,f2); title('surf komutu ile f2(x,y) yüzey cizimi'), xlabel('x');ylabel('y'),zlabel('z');

www.eemder

snotla

ri.com

Page 15: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 30.03.2008

SAÜ. MÜH. FAK. ELK-ELN. MÜH. BÖL. SAYISAL ANALĐZ VĐZE SINAV SORULARI S1)

Şekil 1

Şekil 1’de )t(ik akımının t=0:0.001:1 saniye aralığındaki değişimi verilmiştir. )t(ik akımı iki ayrı fonksiyondan

meydana gelmektedir: 10x9x1f 2 +−= ; 4x6x2f += . Akımın periyodu T=1 sn. alınacaktır.

a) )t(ik akımının ortalamasını bulan matlab programı yazınız. (T=1 sn)

b) )t(ik akımın ortalama değerinin akımın ani değerinden küçük olduğu zaman diliminin alt ( altt ) ve üst ( ustt ) değerlerini bulan

matlab programı yazınız.

c) dt*)t(iT

1I

T

0

2ketkin,k ∫= olduğuna göre, akımın etkin değerini T=1 sn için hesaplayan matlab programı yazınız

(tüm soru için yazdığınız program satırlarının sağ tarafına a şıkkı bitti, b şıkkı bitti, c şıkkı bitti ifadeleri koyarak tüm soruyu tek bir program içinde de çözebilirsiniz)

S2) a) x23 ex3)x(f −= lineer olmayan denkleminin kökünü 1x )0( = başlangıç koşulu altında (Newton Raphson yaklaşımını

kullanarak) ikinci iterasyon adımı sonundaki )3(x değerlerini elle hesaplayarak bulunuz (tüm hesaplamalar elle yapılacak, matlab komutu kullanılmayacaktır). Đkinci iterasyon sonunda aranılan köke ulaşılmakta mı dır, nedenini açıklayınız? (iterasyon durdurma toleransı olan epsilon değerini 0.001 alınız.)

b) Yukarıda bulduğunuz f(x) eğrisi değerlerini kullanarak f_x3 adlı üçüncü dereceden bir eğri uydurunuz. Her iki eğriyi aynı eksen takımı üzerine çizdiriniz. Bu çizimde x=[-3:0.01:3] kullanılacaktır.

S3) π

E*4[cos( 1α )-cos( 2α )+cos( 3α )] = 127.32 V

π*3

E*4 [cos(3 1α )-cos(3 2α )+cos(3 3α )] = 0 V

π5

E*4 [cos(5 1α )-cos(5 2α )+cos(5 3α )] = 0 V

Yukarıda verilen üç adet lineer olmayan denklemi fsolve komutu yardımı ile çözünüz. x0 = [0.3 0.4 0.5] alınız. S4) 8x6x4 21 =−

4x4x3 21 =+

;1)0(x1 = ;2)0(x2 = ilk koşuları altında

a) Basit (jacobi) iterasyonu ile ikinci iterasyon sonundaki )2(x1 ve )2(x2 değerlerini bulunuz.

b) Gauss-Seidal iterasyonu ile ikinci iterasyon sonundaki )2(x1 ve )2(x2 değerlerini bulunuz. Her iki şıktaki sonuçları tablo halinde

yan yana veriniz. (Tüm hesaplamalar elle yapılacak, matlab komutu kullanılmayacaktır). Đkinci iterasyon sonunda aranılan köke ulaşılmakta mı dır? (epsilon =0.001) alınız.

www.eemder

snotla

ri.com

Page 16: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 30.03.2008

S5) )t(u2

1

x

x

43

21

x

x

dt

d

2

1

2

1

+

=

durum denkleminin homojen çözümünde yer alan;

+

=

α t11

hom2

1 eb

aC

x

x t22 e

d

cC α

; 21,αα ,a, b, c, d değerlerini bulan matlab programını yazınız.

S6) Şekil 2’de verilen algoritmayı matlab komutları kullanarak gerçekleştiriniz. Eğer program kendi mantığı içinde kendiliğinden

bitmez ise iter 50’yi aşınca program duracaktır.

Şekil 2

Tüm cevaplarda derste gelinen yere kadar öğretilen matlab komutları kullanılacak daha sonra öğretilecek konu ve komutlar kullanılmayacaktır. Aksi durumda ilgili cevaptan not verilmeyecektir.

Sınav süresi 100 dakikadır. Soru kağıtları öğrencide kalacaktır.

Ders notları açıktır ve masa üstünde dağınık olarak bulunmayacaktır.

Not baremi: 1-5/5/5 2-10/10 3-10 4-10/10 5-10 6-25

m=2, n=0 iter=0

m< mn

t = m+ mn

n = n + 0.1 m = m - 0.1 iter = iter +1

Hayır

Evet t >1.95

Yazdır t

m n

iter

DUR

Hayır

Evet

n = n + 0.2 m = m - 0.2 iter = iter +1

www.eemder

snotla

ri.com

Page 17: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 30.03.2008

ÇÖZÜMLER Cevap 1) t=[0:0.001:1];

ik_t=zeros(1,length(t)); for k=1:length(t) if t(k)<=0.549 ik_t(k)=-9*t(k)^2+10; else ik_t(k)=6*t(k)+4; end end ort=mean(ik_t) % a sikki cozuldu u=find(ort < ik_t); tbas=t(u(1)) tson=t(u(end)) % b sikki cozuldu Ietkin=sqrt(mean(ik_t.^2)) % c sikki cozuldu

Cevap 2) a) (9.11) eşitliğinden; )x(f

)x(fxx

i'

ii1i −=+ yazılırsa;

i=1 için

1x )0( = (ilk koşul)

=−=)o(x*23)o()o( e)x(*3)x(f -4.3891

=−=)o(x*22)o()o(' e*2)(x*9)x(f -5.7781

)x(f

)x(fxx

i'

ii1i −=+ ⇒ =

−−=−=

7781.5

3891.41

)x(f

)x(fxx

)o('

)o()o()1( 0.2404

001.07596.012404.0xx )0()1( ≤=−=− şartı sağlanmadığı için iterasyon devam etmelidir.

i=2 için

)x(f

)x(fxx

)1('

)1()1()2( −=

=−=)1(x*23)1()1( e)x(*3)x(f -1.5757

=−=)1(x*22)1()1(' e*2)(x*9)x(f -2.7146

)x(f

)x(fxx

)1('

)1()1()2( −= =-0.3401

001.05805.02404.03401.0xx )1()2( ≤=−−=− şartı sağlanmadığı için iterasyon devam etmelidir.

b) clear all

x=[-3:0.01:3]; f_x=3*x.^3-exp(-2*x)+2; hold on plot(x,f_x) a=polyfit(x,f_x,3); 3 dereceden egri uyduruluyor (polinom olarak) b=polyval(a,x); % 3.dereceden egrinin degerleri bulunuyor plot(x,b,'k--')

Cevap 3) >> x0=[0.3 0.4 0.5] >> [x ,fonkdeger,kontrol]=fsolve(‘sayisal2008_3’,x0) ; function A = sayisal2008_3(x) % yukarida kullanilan alt program dosyasi

A=[cos(x(1))-cos(x(2))+cos(x(3))-0.5; cos(3*x(1))-cos(3*x(2))+cos(3*x(3)); cos(5*x(1))-cos(5*x(2))+cos(5*x(3))];

www.eemder

snotla

ri.com

Page 18: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 30.03.2008

Cevap 4) a) Birinci iterasyon

=+

=4

x*68x

)0(2)1(

1 5

=−

=4

x*34x

)0(1)1(

2 0.25

001.0415xx )0(1

)1(1 ≤=−=−

ve

001.025.0225.0xx )0(2

)1(2 ≤=−=− şartları sağlanmadığı için iterasyon devam etmelidir.

Đkinci iterasyon

=+

=4

x*68x

)1(2)2(

1 2.3750

=−

=4

x*34x

)1(1)2(

2 -2.75

001.0625.253750.2xx )1(1

)2(1 ≤=−=−

ve

001.099.225.074.2xx )1(2

)2(2 ≤=−−=− şartları sağlanmadığı için iterasyon devam etmelidir.

b) Birinci iterasyon

=+

=4

x*68x

)0(2)1(

1 5

=−

=4

x*34x

)1(1)1(

2 -2.75

001.0415xx )0(1

)1(1 ≤=−=−

ve

001.075.4275.2xx )0(2

)1(2 ≤=−−=− şartları sağlanmadığı için iterasyon devam etmelidir.

Đkinci iterasyon

=+

=4

x*68x

)1(2)2(

1 -2.125

=−

=4

x*34x

)2(1)2(

2 2.5938

001.0125.75125.2xx )1(1

)2(1 ≤=−−=−

ve

001.07188.4125.2(5938.2xx )1(2

)2(2 ≤=−−=− şartları sağlanmadığı için iterasyon devam etmelidir.

Cevap 5) >> A=[1 2;3 4]; >> [Q,d] =eig(A)

Yukarıdaki sonuçlara göre;

+

=

t*)1,1(d1

hom2

1 e)1,2(Q

)1,1(QC

x

x t*)2,2(d2 e

)2,2(Q

)2,1(QC

olacaktır.

Cevap 6)

t=0;m=2;n=0; for iter=1:50 while m >= n^m

www.eemder

snotla

ri.com

Page 19: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 30.03.2008

n=n+0.1; m=m-0.1; iter=iter+1; end t=m+n^m; if t>1.95 n = n + 0.2; m = m - 0.2; iter = iter +1; else break end end m n iter t

www.eemder

snotla

ri.com

Page 20: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 6.03.20098 SAÜ. MÜH. FAK. ELK-ELN. MÜH. BÖL. SAYISAL ANALĐZ VĐZE SINAV SORULARI

Şekil 1 Şekil 2

S1) Şekil 1’de verilen ideal OPAMP devresinde ∫−= t0 s

so dt*)t(v

CR

1)t(v eşitliği geçerlidir. Devre girişine şekil 2’deki işaret

uygulandığında )t(vo değişimini bulan ve bunu )t(vs ile aynı pencereye (subplot ile) alt alta çizdiren (üstte Vs olacak) matlab

programını yazınız ( sR =2 ohm,C=3 farad). t=0:0.01:4 alınız.

S2) a) Şekil 2’de verilen işaret bir doğru akım voltmetresine uygulandığında okunan gerilim değerini ( daV ) ve alternatif akım

voltmetresine uygulandığında okunan gerilim ( aaV ) değerini bulan matlab programını yazınız. t=0:0.01:4 alınız

b) Şekil 2’de verilen gerilim değişimi C=3 farad’ lık bir kapasitenin uçlarına uygulandığında kapasiteden akan akımın zamana bağlı değişimini çizdiren matlab programını yazınız. Sayısal matlab komutları kullanmak şartı ile derste öğretilen istediğiniz yaklaşımı kullanabilirsiniz. T=0:0.01:4 alınız.

c) Şekil 2’de verilen eğriyi en az hata ile bir parabole benzeterek, bu parabolün denklemini bulunuz (vektör olarak). Bu parabolü [0 4] sn aralığında t ekseni ile arasındaki alanı hesaplatarak şekil 2’de verilen gerçek alandan farkını bulduran matlab programını yazınız. t=0:0.01:4 alınız. Tüm işlemleri matlab komutları ile yapınız. (a,b,c şıklarını tek bir program içinde yazabilirsiniz)

S3) Şekil 3’de verilen devrede Newton-Raphson yöntemini kullanarak, ba i,i ve ci akımlarının ilk iterasyon sonundaki değerlerini

bulunuz ve ilk iterasyon sonunda yakınsama sağlanıp sağlanamadığını test ediniz. aa i2v = ; bb i3v = ; 5i2v 2cc +=

(Görüldüğü gibi c direnci lineer bir direnç değildir). Hesap kolaylığı açısından jacobian matrisin ilk iterasyondaki ters matris

değerini ones(3,3) alabilirsiniz. X=[ ai ; bi ; ci ], oX =[2.3; 1.8; 0.4]. Bu sorunun çözümünde matlab komutları kullanılmayacak,

tüm işlemler hesap makinası kullanılarak yapılacaktır. epsilon=0.001

Şekil 3

S4) 1i (t) ve )t(i2 akımları bir elektrik devresinin iki farklı dal akımıdır. 1i akım yolu üzerine konacak sigortanın açma akımı 13 A ve

2i akım yolu üzerine konacak sigortanın açma akımı ise 9A dir. Bu iki akımın yolları üzerinde bulunan sigortaların devreyi

açıp açmadığını kontrol ederek, bu akım değerleri ilk aşıldığında “i1 (veya i2) akımının sigortası t=… sn de atmıştır” ya da sigorta akım değerleri hiç aşılmadığında ise “i1(veya i2) akımının sigortası atmamıştır” yazısını command window ortamına yazan bir matlab programı yazınız. Đki farklı daldan akan akımların zamana bağlı değişimleri aşağıda verilmiştir:

1i (t)= 10.29sin((2π50t)-1.262)+9.81 t100e− ; 6t7t3t3)t(i 232 ++−−= ; t=0:0001:2 alınız. Not: 1.262 radyan dır.

S5) Şekil 3’de “a” elemanı LX =2 ohm (bobin), “b” elemanı 2XC = ohm (kapasite), “c” elemanı ise R= 4 ohm (direnç) olsun. “E” nin

yerine )3/wtsin(2220)t(v π−= olan bir kaynak yerleştiriniz. Devre sürekli halde çalışıyorken; a) “a” elemanının uçlarına

bağlanacak aa voltmetresinin ölçtüğü değeri, b) “c” koluna bağlı aa ampermetresinin ölçtüğü değeri, c) Devrenin cosϕ güç faktörü

değerini (endüktif mi, kapasitif mi, omik mi olduğu belirtilecektir), d) Kaynaktan çekilen P (aktif güç) ve Q (reaktif güç) değerini bulan bir matlab programı yazınız. Tüm soru için tek bir program yazıp, her bir satırın yanına % işareti ile yapılan işlemi de yazabilirsiniz. Hiçbir işlem el ile yapılmayacak hepsi matlab komutu kullanılarak yapılacaktır.

Tüm cevaplarda derste gelinen yere kadar öğretilen matlab komutları kullanılacak daha sonra öğretilecek konu ve komutlar kullanılmayacaktır. Aksi durumda ilgili cevaptan not verilmeyecektir.

Sınav süresi 110 dakikadır. Soru kağıtları öğrencide kalacaktır.

Ders notları açıktır ve masa üstünde dağınık olarak bulunmayacaktır.

Not baremi: 1-20 2- 5/5/5 3- 20 4-20 5- 5/5/5/10

)t(vs

)sn(t

10

4 2

(V)

si

0in =

M

-

+

ov

+

-

C sR

N

fi

0ip =

nv

pv +

- sv

www.eemder

snotla

ri.com

Page 21: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 6.03.20098

ÇÖZÜMLER Cevap 1) clear all t=0:0.01:4; Rs=2; C=3; a1=length(t); Vs=zeros(1,a1); for k=1:a1 if t(k)<=2 Vs(k)=5*t(k); else Vs(k)=10; end end Vo=(-1/(Rs*C))*cumtrapz(t,Vs); subplot(211),plot(t,Vs,'k'),xlabel('t'),ylabel('Vs'),grid, subplot(212),plot(t,Vo,'k'),xlabel('t'),ylabel('Vo'),grid

Cevap 2) a) t=0:0.01:4; a1=length(t); Vs=zeros(1,a1); for k=1:a1 if t(k)<=2 Vs(k)=5*t(k); else Vs(k)=10; end end mean(Vs) % doğru akım voltmetresi

sqrt(mean(Vs.^2)) % alternatif akım voltmetresi

b) C=3; akimC=C*diff(Vs)./diff(t); plot(t(2:end),akimC,’k’),xlabel(‘t’),ylabel(‘iC’),grid

c) a=polyfit(t,Vs,2); y=polyval(a,t); a1=trapz(t,y);

a2=trapz(t,Vs);

a1-a2 % fark alan

Cevap 3) Şekil 3’ de verilen devreye KAY ve KGY uygulandığında;

f⇒ 2*ia+3*ib-10=0 ; g⇒ 2*ic 2-3*ib+5=0 ; h⇒ - ia+ib+ic=0

eşitlikleri elde edilir. X=[ ai ; bi ; ci ] için jacobian matris;

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

=

ic

h

ib

h

ib

hic

g

ib

g

ib

gic

f

ib

f

ia

f

J

J = [ 2 3 0 ] [ 0 -3 4*ic ] [ -1 1 1 ]

elde edilir.

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

−=

===

===

===

)o()1(

)o()1(

)o()1(

icciibbiiaai

icciibbiiaai

icciibbiiaai

)o()o()o(

)o()o()o(

)o()o()o(

icic

.

ibib

iaia

ic

h

ib

h

ia

h

ic

g

ib

g

ia

g

ic

f.

ia

f

ia

f

ic,ib,ia(h

ic,ib,ia(g

ic,ib,ia(f

)o()o()o(

)o()o()o(

)o()o()o(

www.eemder

snotla

ri.com

Page 22: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 6.03.20098

−−=

4.0ic

.

8.1ib

3.2ia

1 1 1

ic*4 3 0

0 3 2

1.0

08.0

0

)1(

)1(

)1(

=

4.0ic

.

8.1ib

3.2ia

1.0

08.0

0

*

1 1 1

ic*4 3 0

0 3 2

)1(

)1(

)1(1-

=

4.0ic

.

8.1ib

3.2ia

1.0

08.0

0

*

1 1 1

1 1 1

1 1 1

)1(

)1(

)1(

=

4.0ic

.

8.1ib

3.2ia

18.0

18.0

18.0

)1(

)1(

)1(

=

+

+

+

=

58.0

98.1

38.2

18.04.0

18.08.1

18.03.2

ic

.

ib

ia

)1(

)1(

)1(

>

=

=

=

epsilon

epsilon

epsilon

18.0

.

1.0

08.0

4.058.0

.

8.198.1

3.238.2

icic

.

ibib

iaia

)o()1(

)o()1(

)o()1(

olduğu için ikinci iterasyona geçilecektir.

Cevap 4) t=0:0.0001:4;

akim1=10.29*sin(2*pi*50*t-1.262)+9.81*exp(-100*t); a=find(akim1>=13); % akimin 13A i aşan ilk değeri araştırılıyor if length(a)>=1 tacma1=t(a(1)); disp('i1 akimi sigortasi'),disp(tacma1),disp('saniyede atmistir') else disp('i1 akimi sigortasi atmamistir') end akim2=-3*t.^3-3*t.^2+7*t+6; b=find(akim2>=9); if length(b)>=1 tacma2=t(b(1)); % akimin 9A yi aşan ilk değeri araştırılıyor disp('i2 akimi sigortasi'),disp(tacma2),disp('saniyede atmistir') else disp('i2 akimi sigortasi atmamistir') end

Cevap 5) Za=2*exp(j*pi/2); Zb=2*exp(-j*pi/2); Zc=4; V=220*exp(-j*pi/3);Zbc=Zb*Zc/(Zb+Zc); Va=V*Za/(Za+Zbc); % (gerilim bölücü ifadesi) a elemanı gerilim fazoru Vc=V-Va; % c elemanı gerilimi (fazör) Va=abs(V*Za/(Za+Zbc)) % a elemanı aa voltmetre değeri Ic=abs(Vc/Zc) % c elemanına bağlı aa ampermetre değeri Zes=Za+Zbc; % devre empedansı fi=angle(Zes); % devre empedansının fi açısı bulunuyor if fi>0 cos(fi),disp('devre endüktiftir') elseif fi<0 cos(fi),disp('devre kapasitiftir') elseif fi==0 cos(fi),disp('devre omiktir') end S=V*(conj(V)/conj(Zes)); P=real(S) %aktif güç değeri

Q=imag(S) % reaktif güç değeri

www.eemder

snotla

ri.com

Page 23: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu

SAYISAL ANALĐZ YAZ OKULU VĐZE SINAV SORULARI (21/07/2009)

Soru 1) y=sin(wt) fonksiyonunun wt=0:pi aralığındaki alanını, hazır alan hesaplatan matlab komutları

(trapz,quad vb…) kullanmaksızın, yazacağınız program satırları ile ve yamuklar yöntemi

mantığını kullanarak hesaplatın. Programın for komutu kullanılarak yapılacak yazımında,

entegral adım aralığını wt∆ =pi/1000 alın.

Soru 2) )t(u1

2

)t(i

)t(V

14

25

)t(i

)t(V

dt

d

L

c

L

c

−+

=

; u(t): birim basak fonkiyonu

Yukarıda verilen durum denkleminde V1)0(Vc = ; A2)0(iL = olduğuna göre t=0:0.001:2 saniye

aralığında )t(VC ve )t(iL değişimlerini, yazacağınız program satırları yardımı ile, alt alta çizdiriniz.

Programda ode, lsim vb. hazır matlab komutları kullanılmayacaktır. Programın for komutu

kullanılarak yapılacak yazımında, aşağıdaki yol gösterme mantığını kullanın:

Yol gösterme: )1k(t)k(t

)1k(V)k(V

)k(dt

)k(dV CCC

−−

−−= veya

)k(t)1k(t

)k(V)1k(V

)1k(dt

)1k(dV CCC

−+

−+=

+

+

)1k(t)k(t

)1k(i)k(i

)k(dt

)k(di LLL

−−

−−= veya

)k(t)1k(t

)k(i)1k(i

)1k(dt

)1k(di LLL

−+

−+=

+

+

olduğu hatırlansın. Programda boyut taşması problemine dikkat edin!

Soru 3) z=sin(x)*cos(y)

fonksiyonunun [ ]4,0x∈ ve [ ]1,2y −∈ aralığında maksimum olduğu )z,y,x( koordinatlarını

ve minimum olduğu )z,y,x( koordinatlarını bulan matlab programı yazınız.

Soru 4) Seri RL devresinde, iki adet R direnç, bir adet bobin bağlıdır. Bu devre t5.0k e*2)t(I = Amper

değerinde bir akım kaynağı ile beslenmektedir. ohm 2.0R1 = , ohm 4.0R2 = , L= 3 H. 1R direncinin

taşıyabileceği ani güç; W34)t(P1R = , 2R direncinin taşıyabileceği ani güç; W30)t(P

2R = ,

L selfinin taşıyabileceği ani güç ise W50)t(PL = olarak verilmektedir. Devrede akımın akmaya

başladığı anı t=0 sn kabul edilirse, hangi elemanın en önce zarar göreceğini ve zarar görme zamanını

saniye olarak hesaplayan bir matlab programı yazınız. t=0:0.001:2 alınız.

(NOT: Ani güç = P(t)= i(t)*v(t))

Soru 5) A, 6000*6000 boyutunda bir matristir. Bu matris içine bir “kod” sayı saklanmıştır. Bu kod

sayının üstündeki sayı, altındaki sayı, solundaki sayı ve sağındaki sayı aynı olduğunda, bunların

ortasında kalan sayı “kod” olduğuna göre, yazacağınız program ile bu kod sayıyı bulunuz.

Açıklama: kod’un matris içinde nerelere yazılamayacağına dikkat ediniz.

Sınav süresi 80 dakikadır.

Kaynak serbesttir. Masa üstünde dağınık olmayacaktır.

Tüm sorular eşit ağırlıklıdır.

Başarılar dilerim…

www.eemder

snotla

ri.com

Page 24: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu

ÇÖZÜM 1) t=0:pi/1000:pi; alan=0;

y=sin(t);

for k=1:length(t)-1

alan=alan+0.5*(y(k+1)+y(k))*(t(k+1)-t(k));

end

alan % aynı sonucu bilgisayarınızda trapz komutu ile deneyiniz!

2) )k(t)1k(t

)k(V)1k(V

)1k(dt

)1k(dV CCC

−+

−+=

+

+= 2)k(i2)k(V5 LC ++

)k(t)1k(t

)k(V)1k(V CC

−+

−+= 2)k(i2)k(V5 LC ++

**************************************************

)1k(VC + = )k(V))k(t)1k(t(*)2)k(i2)k(V5( CLC +−+++ 1. eşitlik

**************************************************

)k(t)1k(t

)k(i)1k(i

)1k(dt

)1k(di LLL

−+−+

=++

= 1)k(i)k(V4 LC ++

)k(t)1k(t

)k(i)1k(i LL

−+−+

= 1)k(i)k(V4 LC ++

**************************************************

)1k(iL + = )k(i))k(t)1k(t(*)1)k(i)k(V4( LLC +−+++ 2. eşitlik

**************************************************

Aşağıda yazılan programda

xVC =

yiL =

alınacaktır.

Yukarıda verilen iki adet eşitlik yardımı ile aşağıdaki program oluşturularak istenilen çıkış değerleri

çizdirilmektedir.

clc t=0:0.001:2;

x=zeros(length(t));

y=zeros(length(t));

a=length(t);

x(1)=1; y(1)=2;

for k=1:a-1 % a’dan 1 çıkarılmaz ise x(k+1)ve y(k+1)’de boyut hatası verir

x(k+1)=(5*x(k)+2*y(k)+2)*(t(k+1)-t(k))+x(k); % 1.eşitlik

y(k+1)=(4*x(k)+y(k)+1)*(t(k+1)-t(k))+y(k); % 2.eşitlik

end

Vct=x;

iLt=y;

subplot(211),plot(t,Vct),subplot(212),plot(t,iLt)

3) clc clear all

x=0:.1:4;y=-2:.1:1;[X,Y]=meshgrid(x,y);Z=sin(X).*cos(Y);

grid,mesh(X,Y,Z); % bu satır ve altındaki satır gerekli değil

xlabel('X'),ylabel('Y'),zlabel('Z');

www.eemder

snotla

ri.com

Page 25: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu

% hesaplama başlıyor

disp('Zmax')

Zmax=max(max(Z)) % Z matrisinin en büyük elemanı bulunuyor

[satirZ, sutunZ]=find(Z==max(max(Z))) % Zmax'ın adresi bulunuyor

Xmax=X(satirZ,sutunZ) % Zmax adresindeki X değeri bulunuyor=Xmax

Ymax=Y(satirZ,sutunZ) % Zmax adresindeki Y değeri bulunuyor=Ymax

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

disp('Zmin')

Zmin=max(min(Z)) % Z matrisinin en küçük elemanı bulunuyor

[satirZ, sutunZ]=find(Z==min(min(Z))) % Zmin'in adresi bulunuyor

Xmin=X(satirZ,sutunZ) % Zmin adresindeki X değeri bulunuyor=Xmin

Ymin=Y(satirZ,sutunZ) % Zmin adresindeki Y değeri bulunuyor=Ymin

Not: Bulduğunuz sonuçları bilgisayarınızda elde edeceğiniz şekil üzerinde kontrol ediniz.

4) t=0:0.001:2; t1=0:0.001:(2-0.001); % türev alınırken boyut 1 küçülecek

R1=0.2; R2=0.4; L=3;

akim1=2*exp(0.5*t);

akim=2*exp(0.5*t1);

VR1t= R1*akim;

VR2t= R2*akim;

VLt=L*diff(akim1)./diff(t);

PR1t=akim.*VR1t;

PR2t=akim.*VR2t;

PLt=akim.*VLt;

for k=1:length(t1);

if PR1t(k)>= 34

disp('R1 direnci')

disp(t(k)),disp('saniyede zarar gördü')

break

elseif PR2t(k)>= 30

disp('R2 direnci')

disp(t(k)),disp('saniyede zarar gördü')

break

elseif PLt(k)>= 50

disp('L selfi')

disp(t(k)),disp('saniyede zarar gördü')

break

end

end

5) A=[....] % 6000*6000 boyutunda içinde kod saklanan bir matris girildi for k=2:6000-1 % satır 1 den başlayamaz zira kodunda üstünde bir sayı olmalı

for m=2:6000-1 % sütün 6000 olamaz zira üstünde bir sayı olmalı

if A(k-1,m)==A(k+1,m) & A(k,m-1)==A(k,m+1) & A(k-1,m)==A(k,m+1)

kod=A(k,m)

else

end

end

end www.eemder

snotla

ri.com

Page 26: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 31.03.2010 SAÜ. MÜH. FAK. ELK-ELN. MÜH. BÖL. SAYISAL ANALĐZ VĐZE SINAV SORULARI

Şekil 1

S1) Şekil 1’de verilen (Dijital-analog çevirici-DAC) devresinde, )vR

Rv

R

Rv

R

Rv

R

R(v 4

4

f3

3

f2

2

f1

1

fo +++−=

eşitliği geçerlidir. =fR 5k, =1R 5k, =2R 10k, =3R 20k, =4R 40k değerini almaktadır. Giriş uçlarına uygulanan giriş ikili (binary)

kod değerleri [ ]4321 vvvv ; [ ]0000 , [ ]0001 , [ ]0010 , [ ]0011 , [ ]0100 , [ ]0101 için ov çıkış ucunda elde edilen analog gerilim

değerlerini çizdiren bir matlab programı yazınız. Not: Giriş terminallerinden, t=0 için ilk v vektörlerinin tüm elemanları, t=1 için ikinci v vektörünün tüm elemanları… t=5 için son v vektörünün tüm elemanları şeklinde ikili kodlar uygulanmaktadır. Çizim t=0:1:5 sn için

yapılacaktır. Her bir binary vektörünün ilk elemanı 1v ,ikincisi 2v ,üçüncüsü 3v ,dördüncüsü 4v değerini gösterir.

S2)

=

1m

21

11

a

..

a

a

A ; [ ]n11211 b...bbB = ; C=A*B ⇒

=

mn2m1m

n22221

n11211

c..cc

........

c...cc

c..cc

C

olduğuna göre, elemanları bilinen (command window ortamında tanımlı) A ve B vektörlerinin, çarpımlarından elde edilen C matrisinin elemanlarını yalnızca iç içe for döngüleri yardımı ile bulan bir matlab programını yazınız.

S3)

Şekil 2

Şekil 2’de verilen türev alıcı devrede dt

)t(dvCR)t(v s

fo −= ilişkisi geçerlidir. Ω= k6R f , C=1 Fµ . )t*50*pi*2sin(*5)t(vs =

alınız. t=0 : 0.00001 : 6 için )t(io değişimini bulunuz. subplot komutu yardımı ile )t(v),t(v os ve )t(io değişimlerini alt alta çizdiren

matlab programını yazınız. Not: OPAMP, çıkış gerilimi besleme gerilimini aştığında çıkışı kırpan bir özelliğe sahiptir, unutmayınız. Besleme gerilimi verilen devre için +8 V ile -8 V arasındadır.

S4) Şekil 3’de gösterilen s(t) konum eğrisinin t= 0: 0.001: 0.2 saniye aralığında sahip olduğu tüm minimum noktaların değer ve zamanını bulan matlab programını yazınız. s(t)= 20+(sin(2*pi*50*t))*20*exp(-4*t) metre

Şekil 3

S5)

Maclaurin(....x!3

)2r)(1r(rx

!2

)1r(rrx1)x1(

terim.nterim_üçüncü

3

terim_ikinci

2terim_birinci

r +−−

+−

++=+

44 844 7648476

serisi)

Öyle bir matlab programı yazınız ki; klavye ile girilen x ve r değerleri için serinin kaçıncı terimimin bu eşitliği sağladığını ve bu eşitliğin

değerini bulsun. Not: 1x ≤ rasyonel sayı, ve r: pozitif sayma sayısıdır.

Tüm cevaplarda derste gelinen yere kadar öğretilen matlab komutları kullanılacak daha sonra öğretilecek konu ve komutlar kullanılmayacaktır. Aksi durumda ilgili cevaptan not verilmeyecektir. Yalnızca kitap açıktır. Sınav süresi 110 dakikadır. Soru kağıtları öğrencide kalacaktır. Cevaplar web sitemde ilan edilecektir.

www.eemder

snotla

ri.com

Page 27: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 31.03.2010

ÇÖZÜMLER Cevap 1)

t=0:1:5; vo=zeros(1,6); Rf=5; R=[5 10 20 40]; A=[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1]; for m=1:1:6 for n=1:4 vo(m)=vo(m)+A(m,n)*Rf/R(n); end end plot(t,-vo)

Cevap 2)

A=rand(5,1),B=rand(1,6) C=zeros(5,6); for m=1:5 for n=1:6 C(m,n)=C(m,n)+A(m,1)*B(1,n); % A ve B vektör olduğundan sağdaki C(m,n) % kaldırılsa da program doğru sonuç verecektir end end C

Cevap 3)

[w,t] = gensig('sin',0.02,0.06,0.00001); L=10*10^-3; vs=5*w; subplot(311),plot(t,vs,'k-') vo=(-6000*1*10^-6)*diff(vs)./diff(t); for k=1:length(t)-1 if vo(k)>=8 vo(k)=8; end if vo(k)<=-8 vo(k)=-8; end end subplot(312),plot(t(1:end-1),vo) io=(1/L)*cumtrapz(t(1:end-1),vo);subplot(313),plot(t(1:end-1),io)

Cevap 4)

t=0:0.0001:0.2; s=20+(sin(2*pi*50*t)).*(20*exp(-4*t)); plot(t,s) turev=diff(s)./diff(t); % türev alınıyor td=t(2:length(t)); % boyutu (n-1) dir (geri fark alınıyor) carpim=turev(1:length(turev)-1).*turev(2:length(turev)); % iki eğrinin çarpımının işaret değiştirdiği yerler bulunuyor a=find(carpim<0); %kritik zamanların sıra numaraları say=0; for m=1:length(a) s(a(m)); % kritik_yükseklikler (tüm max. ve min. noktalar) td(a(m)); % tüm kritik zamanlar if s(a(m))<20 % max ve min değerler ayıklanıyor say=say+1; % sadece uygun olanlar sayılıyor disp(say),disp('inci minimum noktaya'), disp(s(a(m))),disp('metrede') disp(td(a(m))),disp('saniyede ulaşılmaktadır') end end

Not: Şekle bakıldığında 20 metrenin üstündeki kritik noktalar max.,altındakiler ise min.oluyor.

www.eemder

snotla

ri.com

Page 28: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

Uğur Arifoğlu 31.03.2010 Cevap 5)

clc clear all x=input('mutlak değeri 1’e eşit veya 1’den bir küçük rasyonel sayı giriniz') r=input('pozitif bir sayma sayısı giriniz') disp('elde edilecek sayı değeri'), A1=(1+x)^r A=1; for k=1:r A=A+factorial(r)*(x^k)/(factorial(r-k)*factorial(k)); end disp('elde edilen sayı değeri') A disp('terim sayısı') k

www.eemder

snotla

ri.com

Page 29: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu (22/07/2011)

SAÜ. MÜH. FAK. ELK. ELN. MÜH. BÖL.

SAYISAL ANALİZ YAZ OKULU VİZE SINAV SORULARI

Soru 1) Bir elektrik devresinde i(t) devre akımı deney ile ölçülerek “aşırı sönümlü” formda elde edilmiştir.

Akım denklemi ise; t5

2t2

1 eAeA50)t(i olarak verilmektedir. ölçülerek bulunan i(t) akımının

0.2 sn.de aldığı değeri kullanarak, i(t) akım ifadesinde yer alan 21 A veA katsayılarını bulan bir

matlab yazılımı bulunuz. Döngü durdurma toleransını 0.001 alınız. Her iki katsayının, 36 dan küçük

pozitif “tam sayı” olduğu bilinmektedir. ( i(t) akımının deney ölçüm sonuçları akim adlı vektör içinde

saklanmaktadır).

Soru 2) t5t2 e6e350)t(i

akım ifadesi t=0:0.01:5 aralığında değişmektedir. i(t) eğrisine en yakın (en az hata ile

uyduracağınız) 3., 4.,5. Mertebeden polinomlardan hangisinin daha doğru olduğunu yazdıran (disp

komutu kullanarak) bir matlab programı yazınız. Uydurulan bu “en uygun polinom” ile i(t) eğrisini

aynı eksen üzerine üst üste çizdiriniz.

Soru 3)

Şekil 1

a) Şekil 1’de verilen eğri entegral alıcı bir OPAMP’ın girişine uygulanmaktadır. OPAMP çıkışına C=0.1 F

değerinde bir kapasite paralel bağlandığına göre, kapasite akım değişimini (tercih ettiğiniz bir yaklaşım

ile) bulunuz. OPAMP girişi, OPAMP çıkışı ve kapasite akımını ayrı “figure” pencerelerinde

çizdiriniz. Yatay eksen saniyedir. Δt=0.01 sn alınız.

b) Kapasiteye paralel olarak bağlanan ve rms değer ölçen bir voltmetre kaç volt gösterir.

Soru 4) t3t20 e18e4)5.0tsin(3)t(f

fonksiyonunun belirlediği rota üzerinde uçan bir uçağın, rotanın aldığı tüm kritik değerler (eğer, büküm,

max, , min. noktaları) içinde yer alan “en büyük kritik değer” ile “en küçük kritik değer” arasındaki

mesafeyi kaç saniyede aldığını gösteren bir matlab yazılımı yazınız. t=1:0.01:6; alınız.

Not baremi: 1- 25 2-25 3- 12.5/12.5 4- 25

Sınav süresi 90 dakikadır.

Yalnızca kitap açıktır. Eski sınav soru ve çözümleri dahil her türlü not kapalıdır.

Çözümler abis’ de ilan edilecektir.

www.eemder

snotla

ri.com

Page 30: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu (22/07/2011)

CEVAPLAR

1)

% aşağıdaki deger, akim adlı ölçüm sonuçlarının “0.2” sn. deki değerini bulmaktadır. deger=50+3*exp(-2*0.2)+6*exp(-5*0.2);% bu fonksiyonu bilmiyoruz

% ama aldığı tüm değerleri (ölçtüğümüz için) biliyoruz top=0; for k=0:35 for m=0:35 top=50+k*exp(-2*0.2)+m*exp(-5*0.2); if abs(top-deger)<0.001 A1=k A2=m break else end end end

% program çalıştığında 3 ve 6 katsayılarını bulmalıdır.

2)

clear all t=0:0.01:5; deger=50+3*exp(-2*t)+6*exp(-5*t); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% a=polyfit(t,deger,3); a1=polyval(a,t); hata1=deger-a1; OKH1=mean(hata1.^2); KOKH3=sqrt(OKH1) %%%%%%%%%%%%%%%%%% b=polyfit(t,deger,4); b1=polyval(b,t); hata2=deger-b1; OKH2=mean(hata2.^2); KOKH4=sqrt(OKH2) %%%%%%%%%%%%%%%%%%%%%%%% c=polyfit(t,deger,5); c1=polyval(c,t); hata3=deger-c1; OKH3=mean(hata3.^2); KOKH5=sqrt(OKH3) %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% if KOKH5>KOKH3 & KOKH5>KOKH4 disp('5. mertebeden eğri uydurma en iyisidir') hold on, plot(t,deger),plot(t,c1) elseif KOKH4>KOKH5 & KOKH4>KOKH3 disp('4. mertebeden eğri uydurma en iyisidir') hold on, plot(t,deger),plot(t,b1) elseif KOKH3>KOKH5 & KOKH3>KOKH4 disp('3. mertebeden eğri uydurma en iyisidir') hold on, plot(t,deger),plot(t,c1) end

3) clear all t=0:0.01:10; gerilim=zeros(1,length(t));

www.eemder

snotla

ri.com

Page 31: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu (22/07/2011)

for k=1:length(t) if t(k)<=1 gerilim(k)=10; elseif 1.5<= t(k) & 3>=t(k) gerilim(k)=10; elseif 4<= t(k) & 5>=t(k) gerilim(k)=10; elseif 5<= t(k) & 6>=t(k) gerilim(k)=-10; elseif 6.5<= t(k) & 8>=t(k) gerilim(k)=-10; elseif 9<= t(k) & 10>=t(k) gerilim(k)=-10; end end figure(1) plot(t,gerilim),grid on,title('opamp girişi') cikis=cumtrapz(t,gerilim); figure(2) plot(t,cikis),grid on,title('opamp çıkışı') C=0.1; akim=C*diff(gerilim)./diff(t); figure(3) plot(t(2:end),akim),grid on,title('kapasite akımı') % geri fark yöntemi ile voltmetre= sqrt(mean(cikis.^2))

4) clc t=1:0.01:6; m=-4*exp(-20*t)+18*exp(-3*t)+3*sin(t-0.5); tt=diff(m)./diff(t); v=tt(1:end-1); k=tt(2:end); s=v.*k; a=find(s<0); plot(t,m) t(max(a)); t(min(a)); farkt=t(max(a))-t(min(a))

5)

www.eemder

snotla

ri.com

Page 32: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu 12/07/2012

SAÜ. MÜH. FAK. ELK. ELN. MÜH. BÖLÜMÜ

SAYISAL ANALİZ YAZ OKULU VİZE SINAV SORULARI

Soru 1) Bir elektrikli cihazın uçlarındaki ani gerilim değeri (v(t)) ve içinden geçen ani akım (i(t)) değeri bir periyod (T) boyunca

ölçülmüştür. Bu değerler matlab command window ortamına; v=[…] ve akim=[…..] vektörleri olarak

kaydedilmiştir. Wattmetrenin ölçtüğü değer;

∫ ( ) ( )

(watt)

olduğuna göre, cihazın görünür gücü;

22etkinetkin QPI*VS (VAr)-Volt Amper Reaktif (Q; reaktif gücü göstermektedir)

olduğuna göre, herhangi bir değişkenin etkin değeri ise;

dt)t(AT

1A

T

0

2etkin

olduğuna göre, kompleks güç;

jQPSkompleks (kompleks güç)

formülü ile hesaplandığından, bu cihaza ilişkin kompleks güç fazörünü çizdiren matlab program satırlarını yazınız.

Soru 2) A=[ -2 3 4; -130 1 -2; 200 10 2];

matrisinde tüm değerler polinom katsayısı olduğuna göre, birinci satır ile birinci sütun dan elde edilen ikinci dereceden

iki adet eğrinin kesişip kesişmediğini kontrol eden, kesişiyorlar ise ekrana "birinci eğriler kesişmektedir" yazdıran,aksi

halde ekrana "birinci eğriler kesişmemektedir" yazdıran ve bu işlemi her üç satır ve üç sütun için de tekrarlayan matlab

programı yazınız. Not: İki eğri kesişmiyor ise kesişim değerleri kompleks sayı olur. Kesişim var ise "iki" noktada

olabileceği gibi "tek" noktada da olabilir.

.

Soru 3)

Yukarıda verilen f(t) değişiminin [0 15] sn aralığında aldığı değerler F adlı vektör içinde matlab ortamında

tanımlanmıştır. F vektörünün eleman sayısı 1000 dir. 1000 adet değer [0 15] sn aralığında ölçülmüştür. A>C>D>B

olduğuna göre;

a) f(t) değişimine ilişkin A, B, C, D değerlerini bulan matlab programını yazınız.

b) t(A), t(B), t(C), t(D) değerlerini sn olarak bulan matlab programını yazınız.

not: f(t) değişiminin B,C ve D değerlerini [0 15] sn aralığında birden çok kere alabileceğini unutmayınız.

Soru 4) a) Sıfır (dahil) ile 1000 (dahil) sayıları arasında rasgele 10000 adet tam sayı üreten bir matlab programı yazınız.

b) Eleman değerleri birbirlerinden farklı reel 100 elemanlı bir sayı dizisinin en büyük değerli 10 ve en küçük değerli 8

adet elemanını silerek geri kalan dizi elemanlarının orta değerini bulan matlab programını yazınız.

Soru 5) Kutupsal gösterimden yaralanarak; z=z+(1/z) dönüşümünün |z|=1 çemberini x-ekseni üzerindeki hangi [a b] aralığına

resmettiğini bulunuz.

ÖNEMLİ NOT: Bölüm 8'kadar öğretilen matlab komutları kullanılacaktır. Aksi halde ilgili cevap için puan

verilmeyecektir.

Not baremi: 1- 20 2- 20 3- 20 4- 20 5-20

Sınav süresi 90 dakikadır.

Yalnızca kitap açıktır. Eski sınav soru ve çözümleri dahil her türlü not kapalıdır.

Çözümler Obis’ de ilan edilecektir.

15

f(t )

D C A

B B

t (sn)

www.eemder

snotla

ri.com

Page 33: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu 12/07/2012

CEVAPLAR

1) v=[ ]; akim=[ ];

P=mean(v.*akim);

Vetkin=sqrt(mean(v.^2));

akimetkin=sqrt(mean(akim.^2));

S=Vetkin*akimetkin;

Q=sqrt(S^2-P^2);

Skompleks=P+j*Q;

compass(Skompleks)

2) A=[ -2 3 4; -130 1 -2; 200 10 2]; for k=1:3

M=roots([A(k,:)-A(:,k)']); % kökler kaç tane

if length(M)==1 % kök sayısı 1 tane ise

if imag(M(1))~=0

disp(k),disp(' inci doğru kesişmemektedir')

else

disp(k),disp(' inci doğru kesişmektedir')

end

elseif length(M)==2 % kök sayısı 2 tane ise

if imag(M(1))~=0 || imag(M(2))~=0

disp(k),disp(' inci doğru kesişmemektedir')

else

disp(k),disp(' inci doğru kesişmektedir')

end

end

end

3) F=[…..]; % 1000 adet ölçüm elemanı barındırmaktadır

t=linspace(0,15,1000);

[A b] = max(F); % A değeri bulundu

F1=F(b:end);

t_A=t(b); % t(A) değeri bulundu

[B c] = min(F1); % B değeri bulundu

F2=F(b+c:end);

t_B=t(b+c-1); % t(B) değeri bulundu

[C d] = max(F2); % C değeri bulundu

t_C=t(b+c+d-1); % t(C) değeri bulundu

[D e] = min(F2); % D değeri bulundu

t_D=t(b+c+e-1); % t(D) değeri bulundu

4) a) for k=1:10000

a=0 ;b=1000;

A1=min(a:b);

A2=b-a;

s2=round(A1+rand*A2)

end

b) A=[ …..]; % 100 elemanlı vektör B= sort(A,'descend'); % Büyükten küçüğe sıralama yapıldı

M=[B(11:end-8)];

aranan_deger=median(M);

5) z=x+iy;

z=z+(1/z) = x+iy +(1/(x+iy)= x2)yx

yy(i

yx

xx

1

22

1

22

"z=2x" sonucu bize yeni dönüşümde eski dönüşümün x değer aralığının 2 katı aralık alınması gerektiğini söylemektedir. Buna

göre |z|=1 çemberinde x aralığı [-1 1] olduğuna göre yeni dönüşümde bu aralık 2 katına çıkarılmalı diğer bir ifade ile [-2 2]

olmalıdır.

www.eemder

snotla

ri.com

))HAKAN((
Satır
))HAKAN((
Satır
))HAKAN((
Satır
))HAKAN((
Satır
))HAKAN((
Daktilo
b c d e
Page 34: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu - G.Çetinel 28.03.2012

SAÜ. MÜH. FAK. ELK-ELN. MÜH. BÖL. SAYISAL ANALİZ VİZE SINAV SORULARI

S1) Bir A matrisinde bir "a" sayısının üstündeki ve solundaki sayı eşit ise "a" sayısını bulun. Daha sonra aynı matriste bir "b" sayısının sağ

tarafındaki sayı ile alt tarafındaki sayı eşit ise "b" sayısını bulun. Daha sonra "a" ve "b" sayılarını kök kabul eden polinomu t=0:0.01:5

aralığında çizdirin. Eğer aranılan şartlarda bir "a" veya bir "b" sayısı bulunamıyor ise ekrana "bu problem çözülemez" ifadesini yazdırın.

S2) Wattmetre; gücü ölçülecek cihazın ani akım ile ani geriliminin (gerilim ve akımın sinüs formunda olmasına ihtiyaç yoktur) çarpımının bir

periyot boyunca ortalamasını alır. Reaktif güç ölçen VAr metre ise, sinüs formundaki akım ve gerilimin etkin değerleri ile gerilim ve akım

arasındaki faz farkının sinüs değerinin çarpılması ile elde edilir (Q=V*I*sin )(*I*V iv ). Bir yükün çektiği akımın bir periyot

boyunca ölçülen ani değerleri "akim" adlı vektöre, yükün uçları arasındaki gerilimin ani değerleri ise "gerilim" adlı vektöre kaydedildiğine

göre (akım ve gerilim değişiminin sinüzoidal olduğu kabulü ile), a) bu yükün uçlarına bağlı wattmetre, b) VAr metrenin ölçeceği değerleri

bulan matlab programını yazınız. Not: t=0:0.000001:0.02 alınız (bir periyot). "Faz farkı", ani değerlerden yola çıkılarak elde

edilecektir, ezbere faz farkı yazılmayacaktır. ( a) 5 puan, b) 15 puan).

S3) Şekil 1'de verilen görüntüyü; plot, length, linspace, hold on, text komutlarını kullanarak çizdiren matlab programını yazınız.

Şekil 1

Tüm cevaplarda derste gelinen yere kadar öğretilen matlab komutları kullanılacak daha sonra öğretilecek konu ve

komutlar kullanılmayacaktır. Aksi durumda ilgili cevaptan not verilmeyecektir.

Yalnızca kitap açıktır. Sınav süresi 110 dakikadır. Soru kağıtları öğrencide kalacaktır. Cevaplar Obis sistemde ilan edilecektir.

ÇÖZÜMLER Cevap 1)

clear all

a=[]; b=[];

A=[ 7 0 3 1 2

6 1 5 5 9

0 2 3 2 1

0 1 0 1 6];

[m n]=size(A);

for k=2:m % a; 1. satırda olamaz

for r=2:n % a; 1.sütunda olamaz

if A(k,r-1)==A(k-1,r)

a=A(k,r);

end

end

end

for w=1:m-1 % b; m. satırda olamaz

for h=1:n-1 % b; m. sütunda olamaz

if A(w+1,h)==A(w,h+1)

b=A(w,h);

end

end

end

if length(a)~=0 && length(b)~=0 % aramada A matrisinde a veya b olmayabilir

y=poly([a b]);

t=0:0.01:5;

x=polyval(y,t);

plot(t,x)

else

disp('problemin çözümü yoktur')

end

www.eemder

snotla

ri.com

Page 35: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu - G.Çetinel 28.03.2012

Cevap 2) t=0:0.000001:0.02;

akim=10*sin(2*pi*50*t);

gerilim=20*sin(2*pi*50*t-pi/3);

P=mean(akim.*gerilim) % aktif güç ölçülüyor

aa=find(akim==max(akim));

bb=find(gerilim==max(gerilim));

t1=t(aa); % gerilimin tepe değeri ile akımın tepe değeri arasındaki farktan

t2=t(bb); % faz farkı (saniye olarak) bulunmaya çalışılıyor

fazfarki=(t2-t1)% saniye

f=1/0.02; % frekans bulunuyor

fazfarki=fazfarki*2*pi*f;% faz farkı sn den radyana çevriliyor

akimrms=sqrt(mean(akim.^2)); % akımın etkin değeri

gerilimrms=sqrt(mean(gerilim.^2)); % gerilimin etkin değeri

Q=akimrms*gerilimrms*sin(fazfarki) % reaktif güç ölçülüyor

Cevap 3) clear all

hold on

x=0:0.1:5;

y=linspace(0,5,length(x));

plot(x,y)

u=5:0.1:13;

w=linspace(5,5,length(u));

plot(u,w)

t=8:0.1:13;

k=linspace(0,5,length(t));

plot(t,k)

m=0:0.1:8;

n=linspace(0,0,length(m));

plot(m,n)

text(0.4,0.3,'A(0,0)'),text(8.4,0.3,'B(0,8)')

text(5,4.8,'C(5,5)'),text(11,4.8,'D(13,5)')

www.eemder

snotla

ri.com

Page 36: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu - Ö.Özkan 11.04.2013

SAÜ. MÜH. FAK. ELK-ELN. MÜH. BÖL.

SAYISAL ANALİZ VİZE SINAV SORULARI

S1) Elimizde 500 adet (a,b) olarak verilmiş noktalar bulunmaktadır. Bu ikiliden ilki zamanı, ikincisi ise akımın o t anındaki ani

değerini göstermektedir. 500 adet "a" değeri zaman adlı vektöre, 500 adet "b" değeri ise akim adlı vektöre atansın ve bunlar

matlab workspace ortamında saklansın.

a) akim değişiminin lineer (doğrusal) olup olmadığını araştıran matlab kodlarını yazınız. (Lineer denklemin bir tek eğimi,

lineer olmayan denklemin ise bir çok eğimi vardır). (15 puan) b) akim in doğru akım mı yoksa alternatif akım mı olduğunu araştıran kodları yazınız. (Değişken doğru akım olabileceğini

unutmayınız!). Sonuç hangi tip akım ise disp komutu ile ekrana yazdırılacaktır. (Tüm elemanları eksi ya da tüm elemanları

artı olan doğru akım da olabileceğini unutmayınız). (15 puan)

S2) Bir elektrik devresinde kapasite içinden geçen akımın zamana bağlı değişimi;

( )

denklemi ile verilmektedir. Kapasitenin "kapasitans" değeri C= 2 Farad olduğuna göre, t=0:0.001:3 sn aralığında;

a) Kapasite geriliminin zamana bağlı değişimini çizdiren matlab kodlarını yazınız. ( ( ) ) b) Kapasitenin uçları arasına bağlanan doğru gerilim voltmetresinin göstereceği değeri bulan matlab kodlarını yazınız.

c) Kapasitenin uçları arasına bağlanan alternatif gerilim voltmetresinin göstereceği değeri bulan matlab kodlarını yazınız.

d) Kapasite akımının en düşük değerini aldığı "t" anında kapasite geriliminin aldığı ani değeri bulan matlab kodlarını yazınız.

e) Kapasitenin harcadığı ani güç değerinin (p(t)= ( ) ( )) en yüksek olduğu değeri ve bu değere ulaşıldığı "t" anını

bulunuz.

Not: ( )

∫ ( )

(Yukarıdaki tüm işlemler verilen zaman aralığı boyunca yapılacaktır) (Her şık 5 puan)

S3) En fazla 4. dereceden olan polinomların katsayıları input komutu ile klavye yardımı ile girilecek ve bunlar bir matrisin

elemanları olarak alt alta kaydedilecektir (4. dereceden bir polinomun "5" adet katsayı içereceği hatırlansın). İlk polinomın

katsayıları matrisin ilk satırına,son polinomun katsayıları matrisin son satırına kaydedilecektir. Program, en fazla 10 adet polinom

katsayılarını kaydedecek, bunun üstündeki polinom taleplerini kabul etmeyecek ve nedeni ekrana yazı ile kullanıcıya bildirecektir.

Polinomun tüm katsayıları (dördüncü derecenin katsayısından başlayarak en düşüğe doğru) klavye ile girilecektir (polinom

dördüncü dereceden değilse bu katsayı sıfır girilecektir). Örneğin; ekranda şu soru görülecektir: 1. polinomun 1. katsayısını

giriniz, ........, 1. polinomun 5. katsayısını giriniz, ..... ,6. polinomun 3. katsayısını giriniz,....(vb). Kaç adet polinomun

kaydedileceği kullanıcıya ekranda sorulacak, eğer bu sayı 10 dan büyük ise ekrana "en fazla 10 adet polinom tanıtılabilir" uyarı

yazısı gelecek ve 10 adet siparişi alınmış gibi program çalışmaya başlayacaktır. Bu sayı 10'a eşit veya küçük olmalıdır. Kullanıcı,

girilecek olan polinomun 4. dereceden yüksek olmaması konusunda ekrandan uyarılacak, eğer bu uyarı yerine getirilmez ise

"error" komutu ile program durdurulacak ve ekrana "gerekli uyarıya uymadığınız için program durdurulmuştur "

yazdırılacaktır. Oluşturulacak matrisin örneğin (1,1) elemanı: 1. polinomum 4. derece (4t ) katsayısı olacak, (1,5) elemanı: 1.

polinomum sabit katsayısı (0t ) olacak, matrisin (2,3) elemanı: 2. polinomum 2. derece (

2t ) katsayısı olacak, matrisin (10,1)

elemanı: 10. polinomum 4. derece katsayısı olacaktır. Yazılacak matlab kodlarında son satır elde edilen matrisi ekrana

yazdıracaktır.

Not: Matris elemanlarında, satırlarda sağ tarafa doğru gidildikçe, polinomun daha düşük dereceli katsayılarının görüleceği

unutulmamalıdır. (25 puan)

S4) z=64i eşitliğinin 3. dereceden köklerini bulunuz ve x-y koordinat sisteminde yerlerini gösteriniz. (10 puan)

S5)

ilişkisinin tayin ettiği bölgeyi x-y koordinat sisteminde elde ediniz. (10 puan)

Tüm cevaplarda derste gelinen yere kadar öğretilen matlab komutları kullanılacak daha sonra öğretilecek konu ve

komutlar kullanılmayacaktır. Aksi durumda ilgili cevaptan not verilmeyecektir.

Yalnızca kitap açıktır. Sınav süresi 110 dakikadır. Soru kağıtları öğrencide kalacaktır. Cevaplar Obis sisteminde ilan edilecektir.

www.eemder

snotla

ri.com

Page 37: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu - Ö.Özkan 11.04.2013

ÇÖZÜMLER

1) a) zaman =[0 1 2 3 4 5 6]; % sayılar örnek olarak verilmiştir akim = [2 4 6 8 10 12 14];% sayılar örnek olarak verilmiştir

boyut=length(zaman);

say=1;

for k=2:boyut

egim(k-1)=(akim(k)-akim(k-1))/(zaman(k)-zaman(k-1));

end

for kk=2:boyut-1

if egim(kk)== egim(kk-1); % eğimlerin eşitliği kontrol ediliyor

say=say+1;

else

end

end

if say == boyut-1

disp('değişim lineerdir')

else

disp('değişim lineer değildir')

end

b) sayda=0;

saydam=0;

for k=1:boyut

if akim(k)>=0

sayda=sayda+1;

elseif akim(k)<=0

saydam=saydam+1;

end

end

if sayda == boyut || saydam == boyut

disp('akım; doğru akımdır')

else

disp('akim; alternatif akımdır')

end

2) clc

clear all

C=2;

t=0:0.001:3;

T=t(end);

kapakim=1.041*t.^4-8.231*t.^3+23.52*t.^2-27.84*t+9.459; % -14*exp(-t)+24*exp(-

2*t);

a=[1.041 -8.231 23.52 -27.84 9.459];

b=(1/C)*polyint(a);

kapgerilim=b(1)*t.^5+b(2)*t.^4+b(3)*t.^3+b(4)*t.^2+b(5)*t+b(6); % kapasite gerilimi

a) plot(t,kapgerilim) % kapasite gerilimi çizdiriliyor

b)kapgerort=mean(kapgerilim);

disp('doğru gerilim voltmetresi')

disp(kapgerort)

c) kapgeretkin=sqrt(mean(kapgerilim.^2));

disp('alternatif gerilim voltmetresi')

disp(kapgeretkin)

d) [s1 s2]=min(kapakim);

disp('akımın minimum olduğu t anında kapasite gerilim değeri')

disp(kapgerilim(s2))

e) aniguc=kapakim.*kapgerilim;

[anigucmax s4]=max(aniguc);

disp('ani gücün max olduğu değer')

disp(anigucmax)

disp('ani gücün max olduğu zaman')

disp(t(s4))

www.eemder

snotla

ri.com

Page 38: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu - Ö.Özkan 11.04.2013

3)

polsay=input('kaç adet polinom tanıtılacak? ' );

if polsay>10

disp('en fazla 10 adet polinom tanıtılabilir')

polsay=10;

else

end

warning('en fazla 4.dereceden polinom girilebilir aksi halde program

durdurulacaktır')

for k=1:polsay

disp(k), disp('inci polinomun en yüksek derecesini giriniz')

a1=input(' ');

if a1>4

error('gerekli uyarıya uymadığınız için program durdurulmuştur')

else

end

disp(' ')

disp('4. dereceden başlayarak katsayıları giriniz'),disp(' ')

for kk=5:-1:1

disp(kk-1), disp('inci derecenin katsayısını giriniz'),disp(' ')

matris(k,6-kk)=input(' ');

end

end

matris

4. | | ( )

ğ

(

) (

)

(

) (

)]; k=0,1,2

(

) (

) √

(

) (

) (

)

( √

) √

[ (

) (

)] (

)

( )

www.eemder

snotla

ri.com

Page 39: Sayısal Analiz (MATLAB) - Sakarya Üniversitesi Çözümlü Vize Soruları

U.Arifoğlu - Ö.Özkan 11.04.2013

5.

( ) ( )

( ) ( ) Merkezi (2,2); rad. 2√ olan daire denklemi

( ) ( )

( ) ( ) Merkezi (1,1); rad. √ olan daire denklemi

www.eemder

snotla

ri.com