Sunteți pe pagina 1din 5

PROGRАM DE STUDII: MАTEMАTICĂ

ECUAȚII CU DERIVATE PARȚIALE


APLICAȚII ÎN MATLAB
Să se determine derivatele parțiale de ordinul întâi ale funcțiilor
f ( x )=cos(2 x)
f ( x , y )=x∗cos ( y )− y∗cos(x )
f ( x )=eix
SOLUȚIE.
>> sym x;
>> f = cos(2 * x);
>> diff(f)
ans =
(-2)*sin(2*x)
Așadar, cos (2 x )' =−2 sin(2 x)
>> syms x y f
>> f = x * cos(y) - y * cos(x);
>> diff (f, x), diff(f, y)
ans =
cos (y) + y*sin(x)
ans =
- x*sin(y) - cos(x)
Astfel, se poate verifica matematic că derivatele parțiale ale funcției f ( x , y )=x cos ( y )− y cos(x )
sunt:
∂¿¿
și
∂¿¿
>> syms x f
>> f = exp(i * x);
>> diff (f, x)
ans =
i*exp (i*x)

Fie ecuația
∂u ∂2 u
= , t> 0 , 0≤ x ≤ 1
∂ t ∂ x2
Pentru a rezolva ecuația este nevoie de o condiție inițială
u ( 0 , x ) =u0 ( x ) , x ∈ [ 0 , 1 ]
și de condiții de frontieră:
u ( t , 0 ) =u ( t , 1 ) , t> 0
Se va aplica schema explicită pentru condiția inițială:

1
[ ]
0
u ( x )=
{ x ,x ∈ 0,

1
2

1−x , x ∈ , 1
2 [ ]
Astfel programul Matlab este:

end
for i=round(Nx/2):Nx
Uo(i)=1-(i-1)*dx;
end
n=0;
while (n<Nt)
n=n+1;
for i=2:Nx-1
Un(i)=Uo(i)+dt/(dx*dx)*
(Uo(i-1)-2*Uo(i)+Uo(i+1));
end
Uo=Un;
end
plot(x, Uo, `.-r`)
hold on
U=HeatAnalytic(x, tf);
plot(x, U, `b`)
function rez=HeatAnalytic(x, t)
rez=0;
for k=1;100
rez=rez+4/(k*pi)^2*sin(k*pi/2)*sin(k*pi*x)*exp(-k^2*pi^2*t);
end

Soluția
analitică și soluția numerică
la t=0

Soluția analitică și soluția numerică la t=0 .005

S-ar putea să vă placă și