Soru sorAyrı ayrı basılan grafikleri tek bir grafikte toplamak
aydin kaya tarafından 5 yıl önce soruldu

Nümerik analiz için hazırlanmış kodları çalıştırdığınızda bir grafik yani figür çıkıyor..birkac kez çalıştırdığınızda oluşan figürleri tek bir figür halinde yazmak istiyorum.bunu yapmayı bir türlü başaramadım.yardumlariniz icin şimdiden teşekkür ederim.

function uasil=burgerexact(xvec,t,nu)
%problem 1 sin(pix) baþlangýç koþullu tam çözüm
N=500;% number of fourier components to be added
v=nu;
a=zeros(1,N);

F2 = @(x)exp((1-cos(pi*x))/((-2*pi*v)));
a0=quadgk(F2,0,1,'RelTol',1e-12,'AbsTol',1e-12);

for n=1:N
F = @(x)exp((1-cos(pi*x))/((-2*pi*v))).*cos(n*pi*x);

a(n)=2*quadgk(F,0,1,'RelTol',1e-12,'AbsTol',1e-12);
end

p1=0;
p2=0;

for n=1:N
p1=p1+(a(n)*n*(sin(n*pi*xvec)).*exp(-n^2*pi^2*t*v));
p2=p2+a(n)*(cos(n*pi*xvec)).*exp(-n^2*pi^2*t*v);
end
uasil=((2*v*pi)*p1)./(a0+p2);

end
////////////////////////////////
function x=crout(a,n,x)

rl(1,1)=a(1,1);
u(1,2)=a(1,2)/rl(1,1);
for i=2:n-1
rl(i,i-1)=a(i,i-1);
rl(i,i)=a(i,i)-rl(i,i-1)*u(i-1,i);
u(i,i+1)=a(i,i+1)/rl(i,i);
end
rl(n,n-1)=a(n,n-1);
rl(n,n)=a(n,n)-rl(n,n-1)*u(n-1,n);
z(1)=a(1,n+1)/rl(1,1);
for i=2:n
z(i)=1/rl(i,i)*(a(i,n+1)-rl(i,i-1)*z(i-1));
end
x(n)=z(n);
for i=n-1:-1:1;
x(i)=z(i)-u(i,i+1)*x(i+1);
end
return
end
//////////////////////
function Uap=kapali_sfy(tilk,tson,n,m,v,xilk,xson)

clear all

if nargin==0
xilk=0;
xson=1;
tilk=0;
tson=0.1;
n=5;%uzay seviyesi x ler
m=10000;%zaman seviyesi
v=1;
end
k=(tson-tilk)/m;
h=(xson-xilk)/n;
r=k*v/(h^2);
r1=k/(2*h);
mtekrar=n/10;
x=h:h:1-h;
x1=0:h:1;
% for i=1:n+1;
% x=i*h;
% u0(i)=sin(pi*x);
% end
%XXXXXXXXXXXXXXXXXXXXXXXXXXX
% problem 1
u0=sin(pi*x);
UEX=burgerexact(x1,tson,v);
%XXXXXXXXXXXXXXXXXXXXXXXXXXX
% problem 2
% u0=4*x.*(1-x);
% UEX=bur_gerexact_1(x1,tson,v);
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
% problem 3
% u0=x*(1+….)
% Uex=@(x,t) (x/t)/(1+……)
% UEX=Uex(x1,tson);
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
u(1)=0;
u(n+1)=0;
u1(1)=0;
u1(n+1)=0;

mson=round(tson/(k));

b=zeros(n-1,n-1);
for m=1:mson
for i=1:n-1
b(i,i)=1+2*r;
if(i~=1)
b(i,i-1)=-(r+r1*u0(i));
end
if(i~=n-1)
b(i,i+1)=-(r-r1*u0(i));
end
end
for i=1:n-1
b(i,n)=u0(i);
end

u= crout(b,n-1);%Ax=b denklem sistemini çözen metod

for i=1:n-1
u0(i)=u(i);
end
end
Uap=[0;u';0]; % Uap t=1 deki bulduðumuz nümerik çözüm
result = [x1' Uap UEX'];
C = Uap – UEX';
% C_1=1-Uap(2:end-1)./UEX(2:end-1);
err = max(abs(C)); % L_sonsuz hatasý
%err =sqrt(dx*sum(abs(C).^2)); % L_2 hatasý
% err =(1/(n))*sum(abs(C_1)); % ||e||_1 hatasý

plot(x1,Uap);
% reslut_round= roundsd(result,6);
% err_round=roundsd(err,5);
fprintf('Space Points Numerical solutions Exact solutions\n');
fprintf([repmat('%12.5f\t', 1, size(result, 2)) '\n'], result')
fprintf('Hata=%12.6f \n',err);
end
////////////
Yukarıdaki üç ifade bir dosyada çalıştığında elde edilen figürleri tek bir figür olarak nasıl birleştirebilirsiniz.mesela üç kes çalıştıran elde edeceğim figürü bir tek bir grafik halinde birleştirmek istiyorum.bu konuda bana yardımcı olur musunuz.simdiden teşekkürler.

3 Cevap
sayginer Yönetici tarafından 5 yıl önce cevaplandı

Bir çizimi yaptıktan sonra hold on fonksiyonunu kullanara diğer çizimleri de üzerine çizdirmesini sağlayabilirsiniz. Aşağıdaki örneği inceleyebilirsiniz:

plot([1 2 3],[5 6 7]); hold on;
plot([2 3 4],[4 3 5]);
aydin kaya tarafından 5 yıl önce cevaplandı

Cevabınız için çok teşekkür ederim.plot([1 2 3],[5 6 7]); hold on;
plot([2 3 4],[4 3 5]);şeklindeki cozumunuzu ben pek anlamadım.matlabi yeni öğrenmeye çalışıyorum.plot([1 2 3],[5 6 7]); hold on;
plot([2 3 4],[4 3 5]);sekilindeki kodu nereye yazacağımı söyleyebilirsiniz.bana yardımcı olduğunuz icin çok teşekkür ederim.saygilar

sayginer Yönetici tarafından 5 yıl önce cevaplandı

Merhaba,
Eğer MATLAB öğrenmeye yeni başladıysanız cevabımı anlamakta zorluk yaşamanız normal.
MATLAB ile grafik çizdirmek için plot fonksiyonu kullanılır. Mesela plot(x,y) dediğimiz aslında tanımlayacağımız x veya y sayı veya matrislerinin grafiğini çizdirmek anlamına gelir.
Lütfen aşağıdaki sayfaları mutlaka ziyaret edin.
Yapmanız gereken kodunuzdaki plot fonksiyonlarını bularak sonuna hold on fonksiyonunu eklemek.