1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
function [u,x,t] = Yinshi(A,xf,T,it0,bx0,bxf,M,N)
dx = xf/M; x=[0:M]'*dx; dt = T/N; t = [0:N]*dt:
for i=1:M+1 u(i,1) = it0(x(i)); end
for n=1:N+1 u([1 M+1],n) = [bx0(t(n)); bxf(t(n))] end
r = A*dt/dx/dx; r2 =1+2*r; for i =1:M-1 P(i,i) = r2; if i>1 P(i-1,i) = -r; P(i,i-1) = -r; end end
for k = 2:N+1 b = [r*u(1,k);zeros(M-3,1); r*u(M+1,k)]; u(2:M,k) = linsolve(P,b); end
|