Neler Yeni

MATLAB'da yaşadığım sorun

MigrosJET

80+ Bronze
Katılım
9 Ocak 2021
Mesajlar
686
Dahası  
Reaksiyon skoru
227
İsim
Martyn McMillan
Bisection metodu ile verilen fonksiyonun belirli bölgelerdeki kökünü bulmaya çalışıyorum. Kökünü doğru şekilde buluyor ancak her adımda hesapladığı xnew değerlerini fonksiyonun kendi grafiği üzerinde göstermek istiyorum. Nasıl yapabilirim?
Kod:
function [xnew,step]=kokbulma(xleft,xright)
f=inline('x*(exp(x))-cos(x)','x');
a=xleft; b=xright; step=1;
xnew=(a+b)/2; fa=f(a);
error=100;

while (error>0.005)
fnew=f(xnew);
if sign(fnew) == sign(fa)
        a = xnew;
        fa = fnew;
else
        b = xnew;
        fb = fnew;
end
step=step+1;  x_old=xnew;  xnew=(a+b)/2;
error=abs(xnew-x_old)/xnew*100;
plot(xnew,f)
end
return;
end
Mesaj otomatik birleştirildi:

Bisection metodu ile verilen fonksiyonun belirli bölgelerdeki kökünü bulmaya çalışıyorum. Kökünü doğru şekilde buluyor ancak her adımda hesapladığı xnew değerlerini fonksiyonun kendi grafiği üzerinde göstermek istiyorum. Nasıl yapabilirim?
Kod:
function [xnew,step]=kokbulma(xleft,xright)
f=inline('x*(exp(x))-cos(x)','x');
a=xleft; b=xright; step=1;
xnew=(a+b)/2; fa=f(a);
error=100;

while (error>0.005)
fnew=f(xnew);
if sign(fnew) == sign(fa)
        a = xnew;
        fa = fnew;
else
        b = xnew;
        fb = fnew;
end
step=step+1;  x_old=xnew;  xnew=(a+b)/2;
error=abs(xnew-x_old)/xnew*100;
plot(xnew,f)
end
return;
end
18. satıra plot(xnew,f) yazdığımda hata veriyor, ezplot(f) yazdığımda sadece fonksiyonun grafiğini çiziyor. Benim bu grafiğin üstünde hesaplanılan her yeni xnew değerini göstermem gerekiyor.
Mesaj otomatik birleştirildi:

Hallettim, plot yerine bunları yazdım:
ezplot(f)
hold on
plot(xnew,fnew,'b--*')
 
Son düzenleme:
Top Bottom