19/07/2023, 13:20
19/07/2023, 13:39
19/07/2023, 14:10
Credo ci sia un refuso nel tuo testo
Cosa succede se sostituisci nello schema? Scriviti esplicitamente la prima riga (per un tempo fissato)
19/07/2023, 23:02
19/07/2023, 23:03
20/07/2023, 15:05
20/07/2023, 20:02
20/07/2023, 20:04
22/07/2023, 16:46
%% Pulizia
clc;
clear;
close all;
%% Variabili
L=2*pi;
k=1;
a=10;
Tf=20;
beta=0.48;
N=20;
x=linspace(0, L, N);
dx=x(2)-x(1);
dt=beta*dx^2/k;
nt=round(Tf/dt);
dt=Tf/nt;
beta=k*dt/(dx^2);
disp(['beta modificato ', num2str(beta)]);
c=a*dt/dx;
t=linspace (0, Tf, nt);
x=x(:);
p=zeros(N, 1);
phi0=0;
%% Plot condizione iniziale
phi=phi0;
figure(1);
plot (x, phi0, '-rx');
title (['it =0 (out of ', num2str(nt), ')']);
%% Operatori differenziali
I=eye(N);
D1=gallery('tridiag', N, 1, 0, 1);
D2=gallery('tridiag', N, 1, -2, 1);
A=I-(beta/2)*D2;
B=I-(c/2)*D1+(beta/2)*D2;
%% Condizioni al contorno
A(N, 1:N)=0; %Dirichlet
B(N, 1:N)=0; %Dirichlet
T=A\B;
T(1, 1)=1+beta; %Neumann
T(1, 2)=-beta; %Neumann
for it=1:nt
figure(2);
p(1)=((k*dt)/dx)*sin((2*pi*a*t(it))/L);
p(N)=0;
P=A\p;
phi=T*phi+P;
plot (x, phi0, '-xr', x, phi, '-ob');
grid on;
title(['it= ', num2str(it), ' of ', num2str(nt)]);
drawnow;
end
29/07/2023, 14:57
%% Pulizia
clc;
clear;
close all;
%% Variabili
L=2*pi;
k=1;
a=8;
Tf=20;
beta=0.48;
N=20;
x=linspace(0, L, N);
dx=x(2)-x(1);
dt=beta*dx^2/k;
nt=round(Tf/dt);
dt=Tf/nt;
beta=k*dt/(dx^2);
disp(['beta modificato ', num2str(beta)]);
c=a*dt/dx;
disp(['il numero di Courant è ', num2str(c)]);
t=linspace (0, Tf, nt);
x=x(:);
p=zeros(N-1, 1);
phi0=0*x;
phi=phi0(1:end-1);
%% Plot condizione iniziale
figure(1);
plot (x, phi0, '-rx');
title (['it =0 (out of ', num2str(nt), ')']);
%% Operatori differenziali
I=eye(N-1);
D1=gallery('tridiag', N-1, 1, 0, 1);
D2=gallery('tridiag', N-1, 1, -2, 1);
A=I-(beta/2)*D2;
B=I-(c/2)*D1+(beta/2)*D2;
%% Condizioni al contorno
A(1, 1)=1+beta; %Neumann
A(1, 2)=-beta; %Neumann
T=A\B;
for it=1:nt
figure(2);
p(1)=-((k*dt)/dx)*sin((2*pi*a*t(it))/L);
P=A\p;
phisol=T*phi+P;
phi=phisol;
plot (x, phi0, '-xr', x, [phi; 0], '-ob');
grid on;
axis([ 0 L -0.2 0.2]);
title(['it= ', num2str(it), ' of ', num2str(nt)]);
drawnow;
end
Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000—
Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.
Powered by phpBB © phpBB Group - Privacy policy - Cookie privacy
phpBB Mobile / SEO by Artodia.