有matlab程序
一维问题的有限元法一.算法构思
考虑下面的两点边值问题
''2
(0,1) Fu=-u+u=sin x 1+ =f,x
y(0) 0,y(1) 0
设F是一个微分算子,则
1
Fu=0 Fu vdx=0, v C0,即v(0)=v(1)=0,且v'(x)连续
01
则把问题中的微分方程化为积分方程,得 u'v'+uvdx= fvdx
1
1
令 a u,v u'v'+uvdx, (f,v)= fvdx
1则问题就是求u C10,使得a(u,v)=(f,v), v C0
1对于一般的u C0,其范围很广泛,但样条函数理论给我们提供了解决问题的有力工具。
11
对[0,1]进行等分:
10=x0
n
1
x-xk-1),x [xk-1,xk) h
取 k x = ,k 1,2,...,n 1.
1 - x-x ,x [x,x)
k+1kk+1
h则u(x)= ui i x ,其中ui是u(x)再xi处得函数值.
i=1n-1
a(u,v)=(f,v) a(u,w)=(f,w),w k x ,k 1,2,...,n 1.即 a i, j ui=(f, j),j=1,2,...,n-1.
i=1n-1
, 1 1
AU=b,其中A=
,
1n-1
xk+1
2k
(f, 1) u 1
,b= . ,U= (f, n-1) n-1, n-1 n-1 u
n-1, 1
22h22
k, k = xk-1 x dx+=+
h3h
xk+11h21
k, k+1 = xk k x k+1 x dx-=-h6h
xk+11+ 22
f, k = 1+ xk-1 k x sin x dx=2 2sin xk -sin xk 1 sin xk 1 h
二,程序实现
clear; clc;
x=zeros(1,101); X=0.01:0.01:0.99;