İM 205-İnşaat Mühendisleri için MATLAB Irfan Turk Fatih Üniversitesi, 2013-14 Konular 1) İnterpolasyon 2) Polinom Fonksiyonu 3) Sayısal İntegral Fonksiyonları 4) Sayısal İntegral Alma 5) Diferansiyel Denklemleri Sayısal Yollarla Çözme Interpolasyon Verilen dataları kullanarak, bilinmeyen bir noktadaki değeri bulmamıza yarar. Örnek:EDU>> t=0:4; EDU>> y=[9 6 3 -1 -4]; EDU>> yeni_t=0:0.25:4; EDU>> yeni _y=interp1(t,y, yeni _t); EDU>> plot(t,y,'r', yeni _t, yeni _y,'o') 10 8 6 4 2 0 -2 -4 0 0.5 1 1.5 2 2.5 3 3.5 4 Interpolasyon Seçenekleri Seçenek Açıklama lineer interpolasyon, aynı linear zamanda varsayılan seçenektir Örnek interp1(t,y,3.5,'linear')=2.5000 interp1(t,y,3.5,'nearest')=nearest Yakın komşulukta interpolasyon 4 Parçalı küpsel şerit interp1(t,y,3.5,'spline')=spline interpolasyonu 2.7969 Şekilsel parçalı küpsel şerit interp1(t,y,3.5,'pchip')=pchip interpolasyonu 2.6161 interp1(t,y,3.5,'cubic')=cubic pchip ile aynıdır 2.6161 Eğer x eşit aralıklı değilse, şerit interp1(t,y,3.5,'v5cubic')=v5cubic interpolasyonu kullanır. 2.6250 Alıştırma Alışırma 13.1: Aşağıda, Bandırma’da ölçülen ortalama sıcaklıklar verilmiştir. Ay °C 1=Oca 2=Şub 3=Mar 4=Nis 5=May 6=Haz 7=Tem 8=Ağu 9=Eyl 10=Eki 11=Kas 12=Ara 8.6 9.6 11.9 17.2 21.5 26.2 27.8 27.6 24.8 19.9 15.6 Nisan ve Kasım ortasındaki sıcaklıkları bulunuz(Nisan ortası için 4.5, Kasım ortası için 11.5 alınız). 11.1 Polinom Fonksiyonu y = polyval(P,X) komutu P polinomunun X noktasındaki değerini verir. P, N+1 elemanlı bir vektörün katsayılarından oluşur. Bu katsayılar büyük dereceden küçük dereceye doğru sıralanmalıdır. y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1) Alışırma 13.2: fonksiyonu için y(0), y(-3), ve y(10) nı polyval fonksiyonuyla bulunuz. Çözüm 13.2: EDU>> x=[1 1 -6]; EDU>> y=polyval(x,0) EDU>> y=polyval(x,-3); EDU>> y=polyval(x,10) Sayısal İntegral Fonksiyonları Fonksiyon integra1 integral2 integral3 quadgk quad2d cumtrapz trapz polyint Yapılan İş İntegrali sayısal olarak bulur. Çift katlı integrali sayısal olarak bulur. Üç katlı integrali sayısal olarak bulur. İntegrali sayısal olarak bulur., Gauss-Kronrod quadrature uyarlamasıyla Çift katlı integrali sayısal olarak parçalamayla bulur. Toplama trapezoidal sayısal integrasyon Trapezoidal sayısal integrasyon Polinomun integralini analitik olarak bulur. Not: Yukarıdaki tüm fonksiyonlar MATLAB ın tüm versiyonlarında çalışmayabilir. Sayısal İntegral İntegral bir fonksiyonun altında kalan alan olarak düşünülür. Bu alan, dikdörtgenlere bölünerek, dikdörtgenlerin alanlarının toplamı şeklide de bulunabilir. Bu yönteme trapezoid kuralı denir. Herhangi bir x değerine karşılık, y değeri bulunur ve alan, trapz(x,y) fonksiyonuyla hesaplanır. Alıştırma Alıştırma 13.1: :Aşagıdaki fonksiyonun integralini bulunuz. Çözüm 13.1: : Sayısal çözüm için x vektörü tanımlamalıyız. Mesela x=0:0.1:1; ve bunlara karşılık gelen, y=x.^2 değerlerini bulmalıyız .Daha sonra trapz(x,y) fonksiyonuyla cevabı buluruz. EDU>> x=0:0.1:1; EDU>> y=x.^2; EDU>> trapz(x,y) ans = 0.3350 Alıştırma Bulunan değer 0.3350 ’dir. Bu integralin gerçek çözümünüde bulabiliriz EDU>> int('x^2',0,1) ans = 1/3=0.3333 Hata =0.3350-0.3333=0.017 Problemler Aşağıdaki integrali sayısal yöntemlerle bulunuz. Gerçek çözümlerle karşılaştırıp hataları bulunuz. 1) 2) Diferansiyel Denklemleri Sayısal Yollarla Çözme Çözücü Problem Tipi Doğruluk Derecesi Nezaman kullanılır ode45 Nonstiff Orta Genellikle ilk akla gelen bu olmalıdır. ode23 Nonstiff Düşük Basit hatalı toleranslar için yada stiff problemler için. ode113 Nonstiff Düşükten Yükseğe Zorlu hata toleranslı problemler için yada hassas hesaplamalı problemler için kullanılır. ode15s Stiff Düşükten Ortaya Eğer ode45 yavaşsa problem stiff tir. ode23s Stiff Düşük Basit hatalı toleranslı stiff sistemler için yada yüksek matriksler için. ode23t Moderately Stiff Düşük Sayısal damping yapmadan kısmen stiff problemler için. ode23tb Stiff Basit hatalı toleranslı stiff sistemler için Düşük Alıştırma Alıştırma 13.3: ode45, ode23, ve ode113 kullanarak aşağıdaki denklemin sonucunu bulan kodu yazınız. Çözüm 13.2: function dy=my_fonk(t,y) dy=-5*y; >>[t,y]=ode45('my_fonk',[0 10],1.43) >> plot(t,y) Problem ode23 ve ode45 kullanarak aşağıdaki denklemin sonucunu bulan kodu yazınız. Cevapları aynı grafikte karşılaştırınız. İpucu: function f=fun1(t,y) f=-t*y/sqrt(2-y^2); >> [t1 f1]=ode23('fun1',[0 5],1); >> [t2 f2]=ode45('fun1',[0 5],1);
© Copyright 2024 Paperzz