AYUDA CON CODIGO FUENTE MATLAB EDP EC. DE LA ONDA, ESQUEMA IMPLICITO
Publicado por Pablo (2 intervenciones) el 19/11/2011 00:58:11
Hola a todos,
Quería saber si alguien me podría ayudar con un error que me figura en mi código MATLAB que resuelve por diferencias finitas utilizando un esquema implícito...La verdad que estoy muy complicado ya que me figura un error que a la fecha no le he podido corregir:
??? In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in ==> Schemaimplicite2 at 35
U(1)=zeros(Lx,1)
El código es:
clear all; close all; clc;
Lx=input('veuillez taper le nombre de discretisation suivant x :');
Lt=input('veuillez taper le nombre de discretisation suivant t :');
C=input('donner la valeur de la celerite C :');
Ht=1/Lt;
Hx=1/Lx;
CFL=C*(Ht/Hx);
while (CFL>1)
disp('schema instable')
Lx=input('veuillez taper le nombre de discretisation suivant x :');
Lt=input('veuillez taper le nombre de discretisation suivant t :');
C=input('donner la valeur de la celerite C :');
Ht=1/Lt;
Hx=1/Lx;
CFL=C*(Ht/Hx);
end
A=zeros(Lx);
for i=1:Lx
A(i,i)=2;
end
for i=1:Lx-1
A(i,i+1)=-1;
end
for i=2:Lx
A(i,i-1)=-1;
end
I=eye(Lx)
B=(I+CFL^2/4*A)
A
for i=2:Lx+1
x(i)=(i-1)*Hx;
U(1)=zeros(Lx,1)
U(2)=zeros(Lx,1);
end
for j=2:Lt-2
b(j)=2*(I-CFL^2/4*A)*U(j)-(I-CFL^2/4*A)*U(j-1)
U(j+1)=B\b(j)
end
for j=1:Lt-1
axis([0 1 -10 10]);
plot(x,u(:,j))
axis([0 1 -10 10]);
pause(0.1);
axis([0 1 -10 10]);
end
Estaré tremendamente agradecido si alguien me orienta para lograr que el archivo funcione!!!
Saludos a todos desde Francia,
Pablo
Quería saber si alguien me podría ayudar con un error que me figura en mi código MATLAB que resuelve por diferencias finitas utilizando un esquema implícito...La verdad que estoy muy complicado ya que me figura un error que a la fecha no le he podido corregir:
??? In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in ==> Schemaimplicite2 at 35
U(1)=zeros(Lx,1)
El código es:
clear all; close all; clc;
Lx=input('veuillez taper le nombre de discretisation suivant x :');
Lt=input('veuillez taper le nombre de discretisation suivant t :');
C=input('donner la valeur de la celerite C :');
Ht=1/Lt;
Hx=1/Lx;
CFL=C*(Ht/Hx);
while (CFL>1)
disp('schema instable')
Lx=input('veuillez taper le nombre de discretisation suivant x :');
Lt=input('veuillez taper le nombre de discretisation suivant t :');
C=input('donner la valeur de la celerite C :');
Ht=1/Lt;
Hx=1/Lx;
CFL=C*(Ht/Hx);
end
A=zeros(Lx);
for i=1:Lx
A(i,i)=2;
end
for i=1:Lx-1
A(i,i+1)=-1;
end
for i=2:Lx
A(i,i-1)=-1;
end
I=eye(Lx)
B=(I+CFL^2/4*A)
A
for i=2:Lx+1
x(i)=(i-1)*Hx;
U(1)=zeros(Lx,1)
U(2)=zeros(Lx,1);
end
for j=2:Lt-2
b(j)=2*(I-CFL^2/4*A)*U(j)-(I-CFL^2/4*A)*U(j-1)
U(j+1)=B\b(j)
end
for j=1:Lt-1
axis([0 1 -10 10]);
plot(x,u(:,j))
axis([0 1 -10 10]);
pause(0.1);
axis([0 1 -10 10]);
end
Estaré tremendamente agradecido si alguien me orienta para lograr que el archivo funcione!!!
Saludos a todos desde Francia,
Pablo
Valora esta pregunta


0