I know why the error is the zeroes?

1 Ansicht (letzte 30 Tage)
Ous Chkiri
Ous Chkiri am 7 Nov. 2019
Bearbeitet: Hiroki Okawa am 8 Nov. 2019
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 Kommentare
Star Strider
Star Strider am 7 Nov. 2019
Not spelled correctly. Should be:
unew = zeros(1,471);
darova
darova am 7 Nov. 2019
unew has no index?
unew=uold(i)-dt*((uold(i+1)-uold(i-1))/2);

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Hiroki Okawa
Hiroki Okawa am 8 Nov. 2019
Bearbeitet: Hiroki Okawa am 8 Nov. 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)

Kategorien

Mehr zu Graphics Objects finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by