Hej,
Givet är ett "BVP", med
Laplace T = 0
med Dirichlet villkor
T(0,y) = 300, T(4,y) = 600 0<y<2
och Neumanvillkor
dT/dx(x,0)=0, dT/dy=(x,2)=0 0<x<4
I problemet skall man först "diskretisera" (med finita differensmetoden) området till en kvadratisk yta med konstant steglängd h=0.2 och i både x- och y-led samt med N=19, M=11. Hur är kvadratisk möjligt egentligen då vi har en rektaningel?
Vidare, på vilket sätt kan jag anpassa följande matlabkod till problemet ovan? Jag har lite problem att förstå hur många okända ekvationer ovanstående problem egentligen ger.
Matlabkoden löser ett laplaceekvationen i ett kvadratisk område med sidan 1 och boundary condition: u=0
Tusen tack på förhand!
Givet är ett "BVP", med
Laplace T = 0
med Dirichlet villkor
T(0,y) = 300, T(4,y) = 600 0<y<2
och Neumanvillkor
dT/dx(x,0)=0, dT/dy=(x,2)=0 0<x<4
I problemet skall man först "diskretisera" (med finita differensmetoden) området till en kvadratisk yta med konstant steglängd h=0.2 och i både x- och y-led samt med N=19, M=11. Hur är kvadratisk möjligt egentligen då vi har en rektaningel?
Vidare, på vilket sätt kan jag anpassa följande matlabkod till problemet ovan? Jag har lite problem att förstå hur många okända ekvationer ovanstående problem egentligen ger.
Matlabkoden löser ett laplaceekvationen i ett kvadratisk område med sidan 1 och boundary condition: u=0
Kod:
clear all;
N = 100;
hx=1/(N+1); hy=1/(N+1);
x=0:hx:1; y=0:hy:1;
d=4*ones(N*N,1);
d_1=-ones(N*N,1);
d1=-ones(N*N,1);
for i=N:N:N*N-1
d_1(i)=0;
d1(i+1)=0;
end
d_2=-ones(N*N,1);
d2=-ones(N*N,1);
a = spdiags([d_2 d_1 d d1 d2], [-N, -1:1,N],N*N,N*N);
f=ones(N*N,1);
uinner=a\f;
Uinner=zeros(N,N);
for i=1:N
Uinner(i,1:N)=uinner((i-1)*N+[1:N]);
end
U=zeros(N+2,N+2);
for i = 1:N
U(i+1,2:N+1)=Uinner(i,1:N);
end
mesh(x,y,U)
title('Solution of \Laplace u = 1 on the unit square')
xlabel('x')
ylabel('y')
zlabel('u(x,y)')
Tusen tack på förhand!