dirichlet.m

来自「在matlab环境下用Diriclet与Richardson算法解决偏微分方程的」· M 代码 · 共 28 行

M
28
字号
function [x,u,u0,E,Emax]=dirichlet(a,b,m,f,q,y,alpha,beta)
h=(b-a)/m;
x=zeros(m+1,1);
for i=1:m+1
x(i)=a+h*(i-1);
end
A=zeros(m+1);
A(1,1)=1;
A(m+1,m+1)=1;
d(1)=alpha;
d(m+1)=beta;
for i=2:m
A(i,i-1)=-1;
A(i,i+1)=-1;
A(i,i)=2+h.^2*q(x(i));
d(i)=h.^2*f(x(i));
end
u=chase(A,d,m);
for i=1:m+1
    u0(i)=y(x(i));
    E(i)=abs(u0(i)-u(i));
end
Emax=max(E);
plot(x,u0,'b-',x,u,'r*')
legend('u0','u');
xlabel('x');
ylabel('u');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?