当前位置:首页 > 偏微分中心差分格式实验报告(含matlab程序)
%************************************************************** ò21.m
function [q,f]=f211(x) %q函数,f函数 q=4*x^2;
f=-2*exp(x^2);
%***************************************************************
程序2
%******************************************************************** %追赶法
function [x]=zhuiganfa(a,b,c,d) %对角线下方的元素,个数比A少一个 % %对角线元素
%对角线上方的元素,个数比A少一个 %d为方程常数项
%用追赶法解三对角矩阵方程 r=size(a); m=r(2); r=size(b); n=r(2);
if size(a)~=size(c)|m~=n-1|size(b)~=size(d) error('变量不匹配,检查变量输入情况!'); end %%
%LU分解 u(1)=b(1); for i=2:n
l(i-1)=a(i-1)/u(i-1); u(i)=b(i)-l(i-1)*c(i-1);
v(i-1)=(b(i)-u(i))/l(i-1); end
%追赶法实现 %%
%求解Ly=d,\追\的过程 y(1)=d(1); for i=2:n
y(i)=d(i)-l(i-1)*y(i-1); end %%
%求解Ux=y,\赶\的过程 x(n)=y(n)/u(n); for i=n-1:-1:1 x(i)=y(i)/u(i);
x(i)=(y(i)-c(i)*x(i+1))/u(i); end
%********************************************************************
程序3
%*********************************************************************
%ODE2.m
function [x]=ODE2(x0,xN,u0,uN,N) %中心差分求解 %x0,xN初始条件 %u0,uN边值条件 %N等分数 %步长 h=1/N; %%
a(1:N-2)=-1/h^2; %对角线下方的元素,个数比A少一个 for i=1:N-1
z(i)=x0+i*h;
[q,f]=f211(z(i));
b(i)=2/h^2+q; %对角线元素 d(i)=f; end
%对对角线元素进行调整 d(1)=d(1)+u0/h^2; d(N-1)=d(N-1)+uN/h^2; %%
[x]=zhuiganfa(a,b,a,d);%数值解
%**********************************************************************
程序4
%************************************************************** %main_chapter.m %x0,xN初始条件 %u0,uN边值条件 %N等分数 %h步长
x0=0;xN=1;u0=1;
uN=exp(1);N=10;h=1/N;
[x]=ODE2(x0,xN,u0,uN,N);%数值解 z=x0+h:h:xN-h;
y=exp(z.^2); %真解 nr1(x-y)
plot(z,x,'og',z,y,'.r')
%***************************************************************
共分享92篇相关文档