I know why the error is the zeroes?
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
clear all;
close all;
clc;
dt=0.25;
x=-40:450;
ui=0.5.*exp(-log(2).*(x./3).^2);
figure(1)
plot (x,ui)
xlabel('x-axis')
ylabel('u(x,0)')
xlim([-40 450])
ui=0.5.*exp(-log(2).*((x-400)./3).^2);
figure(2)
plot (x,ui)
xlabel('x-axis')
ylabel('u(x,400)')
xlim([350 450])
ylim([-0.2 0.6])
%%Central difference
unew=zeroes(1,471);
uold=ui;
for j=1:1600
    unew(1)=uold(1)-dt*((uold(2)-uold(1))/2);
    for i=2:length(ui)-1
        unew=uold(i)-dt*((uold(i+1)-uold(i-1))/2);
    end
    uold=unew;
    j*dt;
end
figure
plot(x,ui(x,400))
hold on 
plot(x,unew)
hold off 
title('central difference @dt=0.25')
2 comentarios
  darova
      
      
 el 7 de Nov. de 2019
				unew has no index?
unew=uold(i)-dt*((uold(i+1)-uold(i-1))/2);
Respuestas (1)
  Hiroki Okawa
      
 el 8 de Nov. de 2019
        
      Editada: Hiroki Okawa
      
 el 8 de Nov. de 2019
  
      1. 
% unew = zeros(1,471);
unew = zeros(size(ui));
2.
% unew=uold(i)-dt*((uold(i+1)-uold(i-1))/2);
unew(i)=uold(i)-dt*((uold(i+1)-uold(i-1))/2);
3.
% plot(x,ui(x,400))
plot(x,ui)
0 comentarios
Ver también
Categorías
				Más información sobre Graphics Objects en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!