有限差分法求解差分方程

 

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

利用数学解答后的标准解为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=A11;
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=A32;
u20=[u20;0];
plot(x1,u20,'b*')
原文地址:https://www.cnblogs.com/xlqtlhx/p/6119366.html