İ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 Örnek lineer interpolasyon, aynı interp1(t,y,3.5,'linear')=linear zamanda varsayılan seçenektir 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 pchip Şekilsel parçalı küpsel şerit interpolasyonu interp1(t,y,3.5,'pchip')=- 2.6161 cubic pchip ile aynıdır interp1(t,y,3.5,'cubic')=- 2.6161 v5cubic Eğer x eşit aralıklı değilse, şerit interpolasyonu kullanır. interp1(t,y,3.5,'v5cubic')=- 2.6250
Alıştırma Alışırma 13.1: Aşağıda, Bandırma da ölçülen ortalama sıcaklıklar verilmiştir. Ay 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 C 8.6 9.6 11.9 17.2 21.5 26.2 27.8 27.6 24.8 19.9 15.6 11.1 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).
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 Düşük Basit hatalı toleranslı stiff sistemler için
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);