首页 > 代码库 > 有限差分法求解差分方程

有限差分法求解差分方程

 技术分享

(注意在这里边界条件的区别)

利用数学解答后的标准解为ue=-0.5x2+0.5;


 

clear all;close all;clc;
%总体用中心差分的办法
%前向差分求出边界u[0]=u[1]
x1=linspace(0,1,7);
dx=1/6;
x0=linspace(0,1,100);
ue=-0.5*x0.^2+0.5;%确切解
plot(x0,ue,k-);
hold on;
e=ones(5,1);
A=spdiags([-e 2*e -e],[-1 0 1],5,5);
%A=toeplitz([2,-1,0,0,0]);
A(1,1)=1;
A1=A/dx/dx;
b1=ones(5,1);
u10=A1\b1;
u1=[u10(1);u10;0];
plot(x1,u1,ro);
hold on;

%中心差分法求出边界u[1]=u[-1];
A2=toeplitz([2,-1,0,0,0,0]);
b2=ones(6,1);
A2(1,2)=-2;
A3=A2/dx/dx;
u20=A3\b2;
u20=[u20;0];
plot(x1,u20,b*)

 

有限差分法求解差分方程