Merhaba MATLAB Türkiye ekibi; aşağıdaki sorunun a şıkkında mavi ile yazılan yerleri ekleyerek programı çalışır hale getirdim. Ancak b şıkkı için uğraşmama rağmen istediğim sonucu alamadım. b şıkkı için yardımcı olur musunuz. İlginize teşekkür ederim.
a) Aşağıdaki ileri_fark isimli Matlab fonksiyonunu,
?′=2−?−4?, ?(?0)=?0
denklemini ileri farklar formülü ile çözecek duruma getiriniz. Bunun için boşluklara gelmesi gereken fonksiyonları ve operatörleri açıkça yazınız. Denklemin ?(0)=2 başlangıç değeri ile h=0.01 adım aralığı kullanarak nümerik çözüm değerlerini 0<?<1 arasında hesaplamak için çağırılması gereken Matlab komutundaki belirtilen boşlukları doldurunuz.
b) a sıkkında sorulan soruyu, geri farklar ve merkezi farklar kullanarak bir kez daha çözünüz. Bu çözümler için geri_fark ve merkezi_fark isimli iki fonksiyon yazınız ve bu fonksiyonları kullanmak için gereken Matlab komutlarını açıkça belirtiniz.
a)
function [y,t] = ileri_fark(h,n,t0,y0) % BIRINCI DERECEDEN DIF. DENKLEMIN COZUMU ICIN İLERİ FARK YONTEMI KULLANIMI % dy/dt=ff(t) olan denklemin cozumu % giris parametreleri % h = adim genisligi % n = son adim indisi % t0 ve y0 y(t0)=y0 baslangic degerleri % Çağırılması gereken komut: [y_num,t_num]=ileri_fark(0.01,10,0,2); t=zeros(1,n+1); y=zeros(1,n+1); y(1)=y0; t(1)=t0; for i=2:n+1 t(i)=t(i-1)+h; y(i)=y(i-1)+h*ff(t(i-1)); end end function ress = ff(t) ress=2-exp(-4*t); end
Merhaba,
b şıkkını yapmaya çalışırken MATLAB açısından karşılaştığınız sorun nedir?
Aşağıya İleri Fark, Geri fark ve Merkez Fark sonuçlarını Analitik çözüm ile karşılaştıran bir örnek bırakıyorum.
Fonksiyonum = @(x) exp(-x).*sin(3*x); dFonksiyonum = @(x) -exp(-x).*sin(3*x)+ 3*exp(-x).*cos(3*x); x=linspace(0,4,101); F=Fonksiyonum(x); h=x(2)-x(1); xMerkez=x(2:end-1); dFMerkez=(F(3:end)-F(1:end-2))/(2*h); xIleri=x(1:end-1); dFGeri=(F(2:end)-F(1:end-1))/h; xGeri=x(2:end); dFgeri=(F(2:end)-F(1:end-1))/h; plot(x,dFonksiyonum(x)); hold on plot(xMerkez,dFMerkez) plot(xIleri,dFGeri); plot(xGeri,dFgeri); legend('Analitik Cozum','Merkez Fark','Ileri Fark','Geri Fark')
Kaynak: https://www.mathworks.com/matlabcentral/answers/213823-forward-backward-and-central-differences