Diferencia entre revisiones de «Ecuación de ondas (grupo 2B)»
De MateWiki
(→Aproximación por el método del trapecio.) |
(→Aproximación por el método de Euler.) |
||
| Línea 52: | Línea 52: | ||
===== Euler Explícito. ===== | ===== Euler Explícito. ===== | ||
| − | + | {{matlab|codigo= | |
| + | %utt-uxx=0 | ||
| + | %u(0,t)=u(l,t)=0 | ||
| + | %u(x,0)=2-abs(0.4x-2) | ||
| + | %ut(x,0)=0 | ||
| + | clear all | ||
| + | L=10; | ||
| + | T=40; | ||
| + | h=0.1; | ||
| + | N=L/h; | ||
| + | x=0:h:L; | ||
| + | xint=h:h:L-h; | ||
| + | dt=h; | ||
| + | t=0:dt:T; | ||
| + | K=2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1); | ||
| + | K=K/h^2; | ||
| + | F=zeros(N-1,1); | ||
| + | u0=2-abs((xint*2/5-2))'; | ||
| + | v0=zeros(N-1,1); | ||
| + | M=[zeros(N-1),eye(N-1);-K,zeros(N-1)]; | ||
| + | G=[zeros(N-1,1);F]; | ||
| + | W0=[u0;v0]; | ||
| + | WW=W0; | ||
| + | sol=zeros(length(t),N+1); | ||
| + | sol(1,:)=[0,W0(1:N-1)',0]; | ||
| + | for j=1:length(t)-1 | ||
| + | WW=WW+dt*M*WW; | ||
| + | sol(j+1,:)=[0,WW(1:N-1)',0]; | ||
| + | end | ||
| + | [xx,tt]=meshgrid(x,t); | ||
| + | surf(xx,tt,sol);}} | ||
===== Euler Modificado. ===== | ===== Euler Modificado. ===== | ||
| + | {{matlab|codigo= | ||
| + | %utt-uxx=0 | ||
| + | %u(0,t)=u(l,t)=0 | ||
| + | %u(x,0)=2-abs(0.4x-2) | ||
| + | %ut(x,0)=0 | ||
| + | clear all | ||
| + | L=10; | ||
| + | T=40; | ||
| + | h=0.1; | ||
| + | N=L/h; | ||
| + | x=0:h:L; | ||
| + | xint=h:h:L-h; | ||
| + | dt=h; | ||
| + | t=0:dt:T; | ||
| + | K=2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1); | ||
| + | K=K/h^2; | ||
| + | F=zeros(N-1,1); | ||
| + | u0=2-abs((xint*2/5-2))'; | ||
| + | v0=zeros(N-1,1); | ||
| + | M=[zeros(N-1),eye(N-1);-K,zeros(N-1)]; | ||
| + | G=[zeros(N-1,1);F]; | ||
| + | W0=[u0;v0]; | ||
| + | WW=W0; | ||
| + | sol=zeros(length(t),N+1); | ||
| + | sol(1,:)=[0,W0(1:N-1)',0]; | ||
| + | for j=1:length(t)-1 | ||
| + | k1=M*WW; | ||
| + | WW=(eye(2*N-2)+dt*M/2)*WW+(dt/2)*k1+(dt^2)*M*k1/2; | ||
| + | sol(j+1,:)=[0,WW(1:N-1)',0]; | ||
| + | end | ||
| + | [xx,tt]=meshgrid(x,t); | ||
| + | surf(xx,tt,sol);}} | ||
==== Aproximación por Fourier con diferentes términos de series. ==== | ==== Aproximación por Fourier con diferentes términos de series. ==== | ||
Revisión del 00:17 17 may 2014
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Ecuación de ondas. Grupo 2-B |
| Asignatura | Ecuaciones Diferenciales |
| Curso | Curso 2013-14 |
| Autores |
Ignacio Díaz-Caneja Camblor Alberto Fernández Pérez Adela González Barbado Lucia López Sánchez Araceli Martín Candilejo Diego Solano López |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
1 Deslizamiento Vertical del Cable.
Consideramos un cable de 10 metros de longitud sujeto por sus extremos. Suponiendo que éste tiene una sección pequeña respecto a su longitud someteremos al cable a pequeñas vibraciones que estudiaremos con una modelización a la ecuación de ondas. Para iniciar el movimiento del cable lo sujetaremos por el centro subiéndolo dos metros y soltándolo.
1.1 Aproximación por el método del trapecio.
%utt-uxx=0
%u(0,t)=u(l,t)=0
%u(x,0)=2-abs(0.4x-2)
%ut(x,0)=0
clear all
L=10;
T=40;
h=0.1;
N=L/h;
x=0:h:L;
xint=h:h:L-h;
dt=h;
t=0:dt:T;
K=2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1);
K=K/h^2;
F=zeros(N-1,1);
u0=2-abs((xint*2/5-2))';
v0=zeros(N-1,1);
M=[zeros(N-1),eye(N-1);-K,zeros(N-1)];
G=[zeros(N-1,1);F];
W0=[u0;v0];
WW=W0;
sol=zeros(length(t),N+1);
sol(1,:)=[0,W0(1:N-1)',0];
for j=1:length(t)-1
WW=(eye(2*N-2)-dt/2*M)\(eye(2*N-2)+dt/2*M)*WW;
sol(j+1,:)=[0,WW(1:N-1)',0];
end
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);
1.2 Aproximación por el método de Euler.
1.2.1 Euler Explícito.
%utt-uxx=0
%u(0,t)=u(l,t)=0
%u(x,0)=2-abs(0.4x-2)
%ut(x,0)=0
clear all
L=10;
T=40;
h=0.1;
N=L/h;
x=0:h:L;
xint=h:h:L-h;
dt=h;
t=0:dt:T;
K=2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1);
K=K/h^2;
F=zeros(N-1,1);
u0=2-abs((xint*2/5-2))';
v0=zeros(N-1,1);
M=[zeros(N-1),eye(N-1);-K,zeros(N-1)];
G=[zeros(N-1,1);F];
W0=[u0;v0];
WW=W0;
sol=zeros(length(t),N+1);
sol(1,:)=[0,W0(1:N-1)',0];
for j=1:length(t)-1
WW=WW+dt*M*WW;
sol(j+1,:)=[0,WW(1:N-1)',0];
end
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);1.2.2 Euler Modificado.
%utt-uxx=0
%u(0,t)=u(l,t)=0
%u(x,0)=2-abs(0.4x-2)
%ut(x,0)=0
clear all
L=10;
T=40;
h=0.1;
N=L/h;
x=0:h:L;
xint=h:h:L-h;
dt=h;
t=0:dt:T;
K=2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1);
K=K/h^2;
F=zeros(N-1,1);
u0=2-abs((xint*2/5-2))';
v0=zeros(N-1,1);
M=[zeros(N-1),eye(N-1);-K,zeros(N-1)];
G=[zeros(N-1,1);F];
W0=[u0;v0];
WW=W0;
sol=zeros(length(t),N+1);
sol(1,:)=[0,W0(1:N-1)',0];
for j=1:length(t)-1
k1=M*WW;
WW=(eye(2*N-2)+dt*M/2)*WW+(dt/2)*k1+(dt^2)*M*k1/2;
sol(j+1,:)=[0,WW(1:N-1)',0];
end
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);
1.3 Aproximación por Fourier con diferentes términos de series.
2 Energía del Cable.
La energía del cable que viene definida por la función: \begin{equation} E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx \end{equation}