Я новичок в программе Matlab. Я хочу приблизить решение дифференциального уравнения и написал этот «код». Я пытался использовать мои старые знания о C.
function u=MDF_EqTrpt_CdtN(f,g)
N= 100;
h= 2/(N-1);
x= -1:h:1;
M= 150;
k= 1/(M-1);
t= 0:k:1;
c= k/(2*h);
u=zeros(N,M);
u(1,1)= g(1+2*h);
u(N,1)= g(1+(N-1)*h);
for i= 2:N-1
u(i,1)= g(1+i*h);
end
for j=2:M
u(2,j)= k*f(1+2*h,(j-1)*k)+(c+1)*u(1,j-1)-c*u(3,j-1);
u(1,j)= u(2,j);
for i=3:N-2
u(i,j)= k*f(1+i*h,(j-1)*k)+u(i,j-1)+c*(u(i-1,j-1)-u(i+1,j-1));
end
u(N-1,j)= k*f(1+i*(N-1),(j-1)*k)+c*u(N-1,j-1)+(1-c)*u(N-1,j-1);
u(N,j)= u(N-1,j);
end
Это код вызова:
clc;
g=@(x) exp(x);
f=@(x,y) sin(x)+sin(y);
u=MDF_EqTrpt_CdtN(f,g);
figure
plot(x,t,u)
Я получаю это
Error in Test_MDF (line 9)
plot(x,t,u)
Я надеюсь что кто-то может сделать эту работу