Professional Documents
Culture Documents
Differenze Finite: %% Diff. Finite Con Termine Di Richiamo %funzioni %C.I
Differenze Finite: %% Diff. Finite Con Termine Di Richiamo %funzioni %C.I
%C.I.
alpha=0;
beta=0;
%INTERVALLI
a=0;
b=1;
N=80;
h=(b-a)/N;
x_nodi= linspace(a,b,N+1)'
x= x_nodi(1:end-1) +h/2;
D= N-1;
%MATRICI
mu_m= mu(x)/(h^2);
g_m= g(x)/h
%differenze centrate
gi= - [g_m(2:end)]/2
gs= [g_m(1:end-1)]/2
%differenze indietro
gi= -[g_m(2:end)]
g0= [g_m(2:end)]
%TERMINE NOTO
b= f(x_nodi(2:end-1))
u=(A+B)\b
%% DOPPIO DIRICHLET
%C.I.
alpha=0
beta= 0
%intervallo
x_nodi=linspace(0,pi, 1001)'
h=mean(diff(x_nodi))
D=length(x_nodi)-2
x= x_nodi(1:end-1) +h/2
%matrice
mu_m=mu(x)/h^2
%termine noto
b= [f(x_nodi(2)) + mu_m(1)*alpha; f(x_nodi(3:end-2));
f(x_nodi(end-1)) + mu_m(end)*beta]
u=A\b
%% NEUMANN SX
%INTERVALLI
a=0;
b=pi
N=1000;
h=(b-a)/N
x_nodi= linspace(a,b, N+1)'
x=x_nodi(1:end-1) +h/2
D=N;
%Matrice
mu_m= mu(x)/h^2
%termine noto
b= [f(x_nodi(1)) - 2*gamma/h ;f(x_nodi(2:end-2)); f(x_nodi(end-
1)) + mu_m(end)*beta]
u=A\b
%FUNZIONI
mu=@(x) 3*ones(size(x))
f= @(x) x + cos(x)
%C.I.
alpha=-1
gamma= 2
%INTERVALLI
a=0;
b=pi
N=1000;
h=(b-a)/N
x_nodi= linspace(a,b, N+1)'
x=x_nodi(1:end-1) +h/2
D=N;
%Matrice
mu_m= mu(x)/h^2
%termine noto
b= [f(x_nodi(2)) + mu_m(1)*alpha ;f(x_nodi(3:end-1));
f(x_nodi(end)) + (2*gamma*h/h^2)]
u=A\b
spline( x_nodi, [0,u], pi)
ELEMENTI FINITI
%FUNZIONI
mu=@(x) ones(size(x));
f= @(x) 2*sin(x) + (1-x).*sin(x)
g=@(x) (9*(log(5)^2)*x.^4 - 6*log(5)*x)
%Intervallo
N=110;
x_nodi= [0, 0.1, 0.27, 0.37, 0.41, 0.54, 0.66, 0.77, 0.8, 0.93,
1]'
%x_nodi=(0:1/N:1)'
h= diff(x_nodi)
x= x_nodi(1:end-1) +h(1:end)/2
%% DOPPIO DIRICHLET
alpha=0;
beta=0;
N_dof= length(x_nodi)-2
%MATRICE
mu_m= mu(x)./h;
%TERMINE NOTO
b= f(x_nodi(2:end-1)).*(h(1:end-1) + h(2:end))/2
b(1) = b(1) + mu_m(1)*alpha
b(end) = b(end) + mu_m(end)*beta
u=A\b
gammai=0
gammaf= -15*log(5)
N_dof=length(x_nodi)
%MATRICE
mu_m= mu(x)./h
g_m= g(x).*h
%TERMINE NOTO
b= [f(x_nodi(1))*h(1)/2-2*gammai ;f(x_nodi(2:end-1)).*(h(1:end-
1) + h(2:end))/2; f(x_nodi(end))*h(end)/2+gammaf]
u=(A+B)\b
sol= @(x) 5^(2-x.^3)
abs( sol(1) - u(end))
% NEUMANN DX
alpha=0
gammaf= 1
N_dof=length(x_nodi)-1
%MATRICE
mu_m= mu(x)./h
% g_m= g(x).*h
%
% g0= 1/3*[ g_m(1); g_m(1:end-1) + g_m(2:end); g_m(end)]
% gi= 1/6*[ g_m(1:end);0]
% gs= 1/6*[0; g_m(1:end)]
%TERMINE NOTO
b= [f(x_nodi(2:end-1)).*(h(1:end-1) + h(2:end))/2;
f(x_nodi(end))*h(end)/2+gammaf]
b(1)= b(1) + alpha*mu_m(1)
u=A\b
spline( x_nodi, [0; u], 1.83)
ODE
HEUN CON DERIVATA SECONDA
clear all
close all
clc
A= [ 0 1; -1 2]
h=0.1
t=0:h:10
z0= [pi;5]
for i=1:length(t)-1
CONSERVAZIONE
clear all
close all
clc
a=0.5
u0= @(x) cos(2*pi*x)
lambda=1
dx=0.01
dt=lambda*dx
T=0:dt:10
X=0:dx:1
%LAX WENDROFF
%u(j+1)(1/2 -1/2*lambda*a) + u(j-1)*(1/2 + 1/2* lambda*a
u_0= (1 -a^2)
u_1= (1/2*a + 1/2*a^2)
u1= (-1/2*a + 1/2*a^2)
for k=1:length(X)-1
u(1,k)= integral(u0, X(k), X(k+1))/dx
end
for i=1:length(T)-1
u(i+1, :)= [ u_1*u(i,end)+u_0*u(i,1)+u1*u(i,2),
( u(i,3:end)*u1 + u(i, 1:end-2)*u_1+ u_0*u(i,2:end-1)),
u(i,1)*u1 + u(i,end-1)*u_1 + u_0*u(i,end) ];
end
Sol= @(t,x) cos(2*pi*(X -a*t))
U_ref= Sol(T(end),X)
plot(X, U_ref, 'g', X(1:end-1), u(end,:))