常微分方程组(边值)
重要:MATLAB常微分方程(组)数值解法
Matlab常微分方程求解问题分类
边值问题:
初值问题:
• 定解附加条件在自变量 的一端
• 一般形式为: y' f (x, y)
y(a)
y0
• 初值问题的数值解法一 般采用步进法,如 Runge-Kutta法
➢ 在自变量两端均给定附加 条件
y' f (x, y)
➢ 一般形式:y(a)y1, y(b)y2
1.根据常微分方程要求的求解精度与速度要求
求解初值问题:
y
'
y
2x y
y ( 0 ) 1
(0x1)
比较ode45和ode23的求解精度和速度
ode45和ode23的比较-1
function xODE clear all clc
format long
y0 = 1; [x1,y1] = ode45(@f,[0,1],y0); [x2,y2] = ode23(@f,[0,1],y0); plot(x1,y1,'k-',x2,y2,'b--') xlabel('x') ylabel('y')
rD = k(3)*C(2)-k(5)*C(4);
rE = k(4)*C(3)+k(5)*C(4);
% Mass balances dCdt = [rA; rB; rC; rD; rE];
三个串联的CSTR等温反应器(例4-3)
function IsothermCSTRs clear all clc CA0 = 1.8; % kmol/m^3 CA10 = 0.4; % kmol/m^3 CA20 = 0.2; % kmol/m^3 CA30 = 0.1; % kmol/m^3 k = 0.5; % 1/min tau = 2; stoptime = 2.9; % min [t,y] = ode45(@Equations,[0 stoptime],[CA10 CA20 CA30],[],k,CA0,tau); disp(' Results:') disp(' t CA1 CA2 CA3') disp([t,y]) plot(t,y(:,1),'k--',t,y(:,2),'b:',t,y(:,3),'r-') legend('CA_1','CA_2','CA_3') xlabel('Time (min)') ylabel('Concentration') % -----------------------------------------------------------------function dydt = Equations(t,y,k,CA0,tau) CA1 = y(1); CA2 = y(2); CA3 = y(3); dCA1dt = (CA0-CA1)/tau - k*CA1; dCA2dt = (CA1-CA2)/tau - k*CA2; dCA3dt = (CA2-CA3)/tau - k*CA3; dydt = [dCA1dt; dCA2dt; dCA3dt];
边值问题的数值解法
M b a 2 y xk y k h ,k 1, 2, ,n 1。 96
2
y 4 x 。因此,当 h 0 时,差分方程的解收敛到微分方 其中 M max a x b
y f x,y,y, y x,y sk,
这里的 s k 为
(8.6.3)
y
在 处的斜率。令 z y ,上述二阶方程可降为一阶方程组
y z, z f x,y,z ,
(8.6.4)
y a ,z a sk。
计算结果表明打靶法的效果是很好的,计算精度取决于所选取的初值问题数
值方法的阶和所选取的步长 h 的大小。不过,打靶法过分依赖于经验,选取试射 值,有一定的局限性。
第八章常微分方程数值解法
8.6.2 差分方法
差分方法是解边值问题的一种基本方法,它利用差商代替导数,将微分方程 离散化为线性或非线性方程组(即差分方程)来求解。 先考虑线性边值问题(8.6.2)的差分法。将区间 a,b 分成 n 等分,子区间的
s2
,同理得到 yb,s2 ,再判断它是否满足精度要求
y b,s2 。如此重复,直到某个 s 满足 y b,sk ,此时得到 k
的 y xi 和 yi z xi 就是边值问题的解函数值和它的一阶导数值。上述方程 好比打靶, s k 作为斜率为子弹的发射,y b 为靶心,故称为打靶法。
y xy 4 y 12 x 2 3x, 0 x 1, y 0 0,y 1 2,
其解的解析表达式为 y
x x 4 x 。来自解 先将该线性边值问题转化为两个初值问题
xy1 4 y1 12 x 2 3 x, y1 1 0, y1 0 0,y1 xy2 4 y2 0, y2 1 1。 y2 0 0,y2
解常微分方程组-边界值问题(Boundary
第十章解常微分方程組-邊界值問題(Boundary Value Problems for ODE)本章探討的邊界值問題模型如下:x''(t) = f(t, x(t), x'(t))x(a) = α , x(b) = β .考慮當函數f(t, x(t), x'(t))是線性(或非線性)時, 求解之方法:1. Discretization Method( finite difference approximations)2. Shooting Method在本章中包含Matlab 的m-file1. finitedf.m2.shoot.m3. shootnl.m將須要的m-file之檔案夾加入搜尋路徑中path('d:\numerical', path)註: 如果你有安裝Matlab Notebook 要執行下列input cells (綠色指令敘述)之前必須先執行上面的cell –[path (…) ]藍色的內容是Matlab [output cells]1. finitedf.m –利用finite difference approximationsx'(t) ~ (x(t+h) - x(t-h) ) / (2 h) ;x''(t) ~ (x(t+h) - 2 (t) + x(t-h) )/ h2 ;來估算邊界值問題x''(t) = f(t, x(t), x'(t))= u(t) t + v(t) x(t) + w(t) x'(t)x(a) = α , x(b) = β. 的數值解 .下列的m-file(finitedf.m)已經把例題中的u(t), v(t), w(t)定義了, 使用者套用此函數時, 記得更正為自己需要的.type finitedf.mfunction rs= finitedf(x0,xn, ta,tb,n)%to solve x''(t) = f(t, x(t), x'(t))=u(t) t + v(t) x(t) + w(t) x'(t)%by finite difference approximations, x0 and xn are the boundary values %t is in[ta,tb].ut = inline('exp(t) - 3*sin(t)', 't') ;vt = -1 ;wt = 1 ;h=(tb - ta)/n ;a=zeros(1,n); b=a; c=a; d=a;for i=1:n-1t = ta + i*h ;a(i) = -( 1+ h * wt/2) ;d(i) = 2 + h^2 * vt;c(i) = -( 1- h * wt/2) ;b(i) = -h^2* ut(t) ;end ;b(1) = b(1) - a(1)* x0 ;b(n-1) = b(n-1) - c(n-1)* xn ;for i=1:n-1a(i) = a(i+1) ;end ;y = trigauss(a, d, c,b,n-1) ;rs = y ;例題 1: 解邊界值問題x''(t) = e t - 3 sin(t) + x'(t) - x(t) ,x(1) = 1.09737491 , x(2) = 8.63749661ta = 1 ; tb = 2; n = 99;h = (tb- ta)/n ; error = zeros(1,n) ;x0 = 1.09737491 ; xn = 8.63749661 ;y = finitedf(x0, xn, ta, tb, n);for i = 1 : n-1t = ta + i * h ;error(i) = exp(t)- 3*cos(t)- y(i) ;end ;format longfprintf('\t t \t x(t) \t error\n') disp([1 x0 0])for i = 9 :9:n-1t = ta + i * h ;disp([t y(i) error(i)])end ;disp([2 xn 0])t x(t) error1.00000000000000 1.09737491000000 01.09090909090909 1.59194209918682 -0.000000365918851.181818181818182.12256804212776 -0.000000694314561.272727272727272.68955333563720 -0.000000963621881.36363636363636 3.29334396781902 -0.000001156328151.45454545454545 3.93457004989182 -0.000001259030391.54545454545455 4.61408706401417 -0.000001263391911.63636363636364 5.33301967061334 -0.000001167139561.72727272727273 6.09280813414278 -0.000000975096821.81818181818182 6.89525744460769 -0.000000700247811.90909090909091 7.74258923378422 -0.000000364826842.00000000000000 8.63749661000000 02. shoot.m –利用shooting method 來估算邊界值問題此方法是將邊界值問題轉為初值問題:x''(t) = f(t, x(t), x'(t)) = u(t) t + v(t) x(t) + w(t) x'(t)x(a) = α , x'(a) = z.其解x(t)在b的數值x(b)可視為z的函數φ(z) .希望好的z值能使得φ(z) =β.當φ(z)是線性時, 考慮函數g(t)=λx1(t) + (1-λ) x2(t) ,其中x1(t)與x2(t)分別是x'(a) = z1與.x'(a) = z2初值問題的解.解此初值問題可利用前面的函數rk4sys.mtype shoot.mfunction rs= shoot(x0,xn, ta,tb,n)%to solve x''(t) = f(t,x(t),x'(t))=u(t) t+ v(t) x(t)+ w(t) x'(t) %by finite difference approximations, x0 and xn are the%boundary values, t is in[ta,tb].ut = inline('exp(t) - 3*sin(t)', 't') ;vt = -1 ;wt = 1 ;h=(tb - ta)/n ; m=5 ;x=[1 x0 0 x0 1]';xt=zeros(m,n);xtnew=zeros(1,n) ;xt=rk4sysnew(x,ta,tb,n) ;xb1=xt(2,n) ;xb2=xt(4,n) ;p = (xn-xb2) / (xb1-xb2) ;q = 1-p ;xtnew=p*xt(2,1:n) +q*xt(4,1:n) ;%return the approximation solutionrs = xtnew ;type fxsys.mfunction fx=fxsys(t,X)%compute values of function F(t,X)%F(t,X) is defined by user%In this example, variable X includes t which is%the first component X(1)fx=zeros(length(X),1);fx(1) = 1 ;fx(2) = X(3);fx(3) = exp(X(1)) - 3*sin(X(1)) + X(3) -X(2);fx(4) = X(5) ;fx(5) = exp(X(1)) - 3*sin(X(1)) + X(5) -X(4); ;例題 2:利用shooting method解邊界值問題x''(t) = e t - 3 sin(t) + x'(t) - x(t) ,x(1) = 1.09737491 , x(2) = 8.63749661ta = 1 ; tb = 2; n = 99;h = (tb- ta)/n ; error = zeros(1,n) ;x0 = 1.09737491 ; xn = 8.63749661 ;y = shoot(x0, xn, ta, tb, n);for i = 1 : n-1t = ta + i * h ;error(i) = exp(t)- 3*cos(t)- y(i) ;end ;format longfprintf('\t t \t x(t) \t error\n') disp([1 x0 0])for i = 9 :9:n-1t = ta + i * h ;disp([t y(i) error(i)])end ; disp([2 xn 0])t x(t) error1.00000000000000 1.09737491000000 01.09090909090909 1.59194173254025 0.000000000727731.181818181818182.12256734722770 0.000000000585511.272727272727272.68955237158771 0.000000000427611.36363636363636 3.29334281123716 0.000000000253711.45454545454545 3.93456879079791 0.000000000063531.54545454545455 4.61408580076543 -0.000000000143171.63636363636364 5.33301850384033 -0.000000000366551.72727272727273 6.09280715965267 -0.000000000606711.81818181818182 6.89525674522358 -0.000000000863701.90909090909091 7.74258887009486 -0.000000001137472.00000000000000 8.63749661000000 03. shootnl.m –利用shooting method 來估算非線性的邊界值問題x''(t) = f(t, x(t), x'(t)) , x(a)= α , x(b)=β同樣地, 將邊界值問題轉為初值問題:x(a) = α , x'(a) = z.其解x(t)在b的數值x(b)可視為z的函數φ(z) .希望好的z值能使得φ(z) =β , 採用secant method .type shootnl.mfunction rs= shootnl(x0,xn, ta,tb,n)%to solve nonlinear x''(t) = f(t,x(t),x'(t)) boundary-Value problem%by Shooting method, x0 and xn are the boundary values,%t is in[ta, tb].%%x''(t)= -x'(t)^2 -x(t) + ln(t), t is in [1,2], x(1)=0, x(2) = ln2 .%exact solution x(t) = ln(t) .% x1(t)=t, x1'(t)=1, x2(t)= x(t), x2'(t)= x3(t)% x3'(t)= x2''(t)= -x3(t)^2 - x2(t) +ln(t)h=(tb - ta)/n ; m=3 ;%for some zz=[0.5 1] ; pz=[0 0] ; %initialepi=10^(-10) ;for j=1: 2x=[1 x0 z(j)]' ; %initialsxt=zeros(m,n) ;xt=rk4sysnew(x,ta,tb,n) ;pz(j)=xn -xt(2,n) ;if pz(j)< epirs = xt(2, 1:n) ;return %end ;end ;%compute the next z by secant methoditer= 15; tol = 10^-5 ; err=0.0 ;i =3 ;while(i <= iter & err < tol)slp= (z(i-1)-z(i-2))/(pz(i-1)-pz(i-2)) ;nextz = z(i-1)- slp*pz(i-1);err = abs(nextz - pz(i-1)) ;z=[z nextz] ;x=[1 x0 nextz]' ; %initialsxt=zeros(m,n) ;xt=rk4sysnew(x,ta,tb,n);pz(i)=xn -xt(2,n) ;if (err < tol | pz(i)<epi )rs = xt(2, 1:n ) ;returnend ;i= i+1 ;endif i>iterprintf(' Secant method fails in Shooting method \n' ) endrs = xt(2, 1:n); %returnstype fxsys.mfunction fx=fxsys(t,X)%compute values of function F(t,X)%F(t,X) is defined by user%In this example, variable X includes t which is%the first component X(1)fx=zeros(length(X),1);fx(1) = 1 ;fx(2) = X(3);fx(3) = -X(3).^2 - X(2) +log(X(1)) ;例題 3:利用shooting method 來估算非線性的邊界值問題x''(t) = -x'(t)2 - x(t) + ln(t) 1≤ t ≤ 2x(1) = 0 , x(2) = ln2 .ta = 1 ; tb = 2; n = 10;h = (tb- ta)/n ; error = zeros(1,n) ;x0 = 0.0 ; xn = log(2) ;y = shootnl(x0, xn, ta, tb, n);for i = 1 : n-1t = ta + i * h ;error(i) = log(t)- y(i) ;end ;format longfprintf('\t t \t x(t) \t error\n') fprintf('\t 1 \t 0 \t 0\n') for i = 1 :n-1t = ta + i * h ;disp([t y(i) error(i)])end ; disp([2 xn 0])t x(t) error1 0 01.10000000000000 0.09531000323697 0.000000176567361.20000000000000 0.18232131442583 0.000000242368121.30000000000000 0.26236400845782 0.000000256009671.40000000000000 0.33647199127437 0.000000245346841.50000000000000 0.40546488415551 0.000000223952651.60000000000000 0.47000343073393 0.000000198511811.70000000000000 0.53062807876778 0.000000172294391.80000000000000 0.58778651805356 0.000000146848561.90000000000000 0.64185376332331 0.000000122849092.00000000000000 0.69314718055995 0。
常微分方程的边值问题
常微分方程的边值问题一、引言在数学中,微分方程是研究自然界中变化和发展的重要工具。
它描述了物体在不同变化条件下的行为规律,并被广泛应用于物理、工程、经济等领域。
边值问题是微分方程中的一个重要分支,它关注的是在一定边界条件下的解。
二、常微分方程常微分方程是指只含有关于一个自变量的一阶或高阶导数的方程。
一般形式为:[F(x, y, y’, y’’, , y^{(n)}) = 0]其中,x是自变量,y是未知函数。
常微分方程的求解可以分为两种类型:初值问题和边值问题。
三、边值问题的定义边值问题是指在一定边界条件下,求解微分方程的解。
对于二阶常微分方程,边值问题的一般形式为:[y’‘(x) = f(x, y, y’), a < x < b, y(a) = , y(b) = ]其中,a和b是给定的边界点,()和()是给定的边界值。
四、边值问题的求解方法边值问题的求解可以分为两种方法:迭代方法和直接方法。
4.1 迭代方法迭代方法是通过不断迭代逼近的方式求解边值问题。
常用的迭代方法有有限差分法和有限元法。
4.1.1 有限差分法有限差分法是一种将微分方程转化为差分方程进行求解的方法。
它将求解域离散化,并通过差分近似来近似微分项,最终通过迭代逼近求得边界值。
有限差分法的基本思想是将求解域划分为若干个离散的网格点,然后使用近似公式将微分项替换为差分项,从而得到差分方程。
通过迭代求解差分方程,最终得到边界条件下的解。
4.1.2 有限元法有限元法是一种将微分方程转化为代数方程组进行求解的方法。
它通过将求解域划分为有限个小区域,然后在每个小区域上选择一个试验函数来代表解,在满足边界条件的情况下,通过最小化误差的方法得到近似解。
有限元法的基本思想是将求解域划分为若干个小单元,然后在每个小单元上选择一个适当的试验函数,通过建立弱形式和加权残差方法得到代数方程组,最终通过迭代求解代数方程组得到边界条件下的解。
4.2 直接方法直接方法是通过对微分方程进行直接求解的方法,其中最常用的方法是变分法。
常微分方程的边值问题
常微分方程的边值问题常微分方程是数学中一个重要的分支,研究的是函数的导数与自变量之间的关系。
在实际问题中,常微分方程的解可以描述物理、工程、经济等领域的变化规律。
而边值问题是常微分方程中的一类特殊问题,它要求在给定的边界条件下求解方程的解。
一、边值问题的定义与分类边值问题是指在一定边界条件下求解常微分方程的解。
边界条件是一组给定的条件,它们通常是关于未知函数及其导数在一些特定点上的值或关系。
边值问题可分为以下两类:1. Dirichlet 边值问题:给定函数在边界上的值。
假设我们要求解的常微分方程为 y''(x) + p(x)y'(x) + q(x)y(x) = r(x),边值问题可以表示为:y(a) = A,y(b) = B其中,a, b 是给定的自变量取值,A, B 是给定的常数。
2. Neumann 边值问题:给定函数在边界上的导数值。
假设我们要求解的常微分方程还是 y''(x) + p(x)y'(x) + q(x)y(x) = r(x),边值问题可以表示为:y'(a) = A,y'(b) = B二、求解边值问题的方法求解边值问题有多种方法,其中比较常用的包括:1. 分离变量法这是一种基本的求解边值问题的方法。
通过将方程中的未知函数分离变量,得到一个关于自变量的方程和一个关于未知函数的方程,再分别求解这两个方程。
2. 特征值法对于某些特殊的边值问题,可以使用特征值法进行求解。
特征值法的关键在于将边值问题转化为一个特征值问题,通过求解特征值和特征函数来得到方程的解。
3. 迭代法对于某些复杂的边值问题,可以使用迭代法逐步逼近方程的解。
迭代法是通过不断逼近函数解来改善近似解的精度,从而得到较为准确的解。
三、常见的边值问题应用常微分方程的边值问题在实际应用中具有广泛的应用,下面列举几个常见的例子:1. 自由振动问题自由振动是常微分方程的一个典型应用,比如弹簧振子的运动可以用一阶线性常微分方程来描述。
常微分方程边值问题的数值解法
……
……
……
3.6896236 3.6865656 -3.058*10-3
4.5635316 4.5612288 -2.303*10-3
5.5854269 5.5841425 -1.284*10-3
6.7725887 6.7725887 0
数值计算方法
对区间[a,b]作等距分划: x j a jh( j 0,1,2,...n)
h b a。由数值微分公式 n
y(x j )
y(x j1) y(x j1) 2h
h2 6
y(3) ( j )
y(x j )
y(x j1) 2 y(x j ) h2
y(x j1)
h2 12
y(4) ( j )
其中, j , j (x j1, x j1)。
差分方程的建立
代入y p(x) y q(x) y r(x), x [a,b]得差分方程:
y j1 2 y j h2
y j1
pj
y j1 y j1 2h
qj yj
rj ( j 1,2,...n 1)
这是求y j ( j 0,1,2,...,n)的n 1个方程,还缺的两个方
程由边界条件补出。
差分方程的建立
对于第一类边界条件:y0 , yn ,即已给出
两个未知量的解, 这时整理后有
b1 c1 a2 b2 c2 y1 d1 a1 源自y2d2an2
bn2
cn2
yn2
dn2
an1 bn1 yn1 dn1 cn1
其中a
解 : 此方程的解析解为y x2 x3 1 x4 x2 ln x。 2
例题
现取步长h 0.1,此时p(x) 2 , x
课件:级第四章 2 边值问题
y(a)
(a x b)
y(b)
例 3:传热问题 建立微分方程:
d 2T 1 dT f (r) dr2 r dr
对流传热
建立边界条件:
a1T(b) b1T(b) T1
r=b
T1
●第三类边界条件
-给定边界处函数和导数共同满足的条件
●第三类边值问题
y f (x, y, y) (a x b)
●● ● ●●
y(x)
x =a
x =b
打靶法的几何说明
对于初值问题
y f x, y, y a x b
y(a)
y(a) m
m
m0
m1
mn
y(b) y(b)m0 y(b)m1 y(b)mn
y(b)m F(m)
合适的 m 值应满足:
y(b)m
即: F(m)
化标准形式:f (m) F(m) 0
1T
2
解: 第一步:明确需要确定哪些函数值 u0,u1,u2,,uN,uN1
将
Ti
ui1
2ui h2
ui1
代入离散化方程
h2 ui1 2ui ui1 k g(Zi )
u0 2u1 u2
u1 2u2 u3 uN 1 2uN
h2
k
h2 k
u N 1
g (Z1 )
g(Z2 ) h2
●第一类边值问题
y f (x, y, y) (a x b)
y(a) y(b)
例 2:传热问题
绝热 r=b
建立微分方程:
d 2T 1 dT f (r) dr2 r dr
建立边界条件:
T (b) 0
●第二类边界条件 -给定边界处导函数满足的条件
边值问题的数值解法在具体求解常微分方程时-2022年学习资料
中南大学数学科学与计算技术学院-第八章常微分方程数值解法-=323-z2=-x32+4y2?-y20=0, 20=0。-取h=0.02,用经典R-K法分别求这两个方程组解yx和y2x的计算值y1:和-y2i,然后按 8.6.6得精确解-6=,t2=0.x-y21-的打靶法计算值》:,部分点上的计算值、精确值和误差列于表8 12。-版核防行:小人学影学烧
中南大学数学科学与计算技术学院-第八章常微分方程数值解法-值得指出的是,对于线性边值问题86.2,一个简单 实用的方法是用解-析的思想,将它转化为两个初值问题:-y"+pxyi+qxy =fx-ya=a,ya=0: 「片+px5+gxy2=0,-ly2a=a,y2a=l。-求得这两个初值问题的解yx和y2x,若y2b≠0 容易验证-a高-8.6.6-为线性两点边值问题8.6.2的解。-例8.7用打靶法求解线性边值问题-版核防行 小人学影学烧
中南大学数学科学与计算技术学院-第八章常微分方程数值解法-y”+y-4y=12x2-3x,0<x<1,-1 0=0,y1=2,-其解的解析表达式为yX=x4+x。-解先将该线性边值问题转化为两个初值问题-y0=0, 1=0,-y2+y%-4y2=0,-y20=0,y1=1。-令乙1=2=y?,将上述两个边值问题分别降为一 方程组初值问题-31=-x31+4y1+12x2-3x,-y,0=0,z10=0,-版权防行:小人学影学烧
中南大学数学科学与计算技术学院-第八章常微分方程数值解法-表8-12-Xi-yu-y2i-yx-y-yl-0.2--0.002407991-0.204007989-0.2016000053-,0.2016000 00-0.53×10-8-0.4--0.006655031-0.432255024-0.425600008 -0.4256000000-0.80x108-0.6-0.019672413-0.709927571-0. 2960000830.7296000000-0.83×108-0.145529585-1.06407038 -1.2096000058-1.2096000000-0.58x108-0.475570149-1.524 28455-2.00000000002.0000000000-例8.8用打靶法求解线性边值问题-4y"+y =2x3+16,-y2=8,y3=35/3。-要求误差不超过0.5×106,其解析解是yx=x2+8/x。 解对应于8.6.4的初值问题为-版凤防行:小人学数:学烧
常微分方程边值问题的解法
常微分方程边值问题的解法常微分方程是描述自然科学、工程技术和经济管理等领域中各种变化规律的一个基础理论。
而边值问题是求解一些微分方程的重要问题之一,涉及到数学、物理、化学等多个领域。
在本文中,我们将讨论常微分方程边值问题的解法。
1. 边值问题的定义在微分方程解的过程中,边值问题(Boundary Value Problem, BVP)是指在区间 $[a,b]$ 上求解微分方程的解,同时已知$y(a)=\alpha$,$y(b)=\beta$ 的问题。
边值问题是对初值问题(Initial Value Problem, IVP)的一种自然延伸,在一定范围内对变量的取值进行限制,使得解的可行域更为明确。
举例来说,对于经典的二阶线性微分方程$$ y''+p(x)y'+q(x)y=f(x), \quad a<x<b $$ 如果边界条件是$y(a)=\alpha$,$y(b)=\beta$,则这个微分方程就是一个边值问题。
2. 常用解法对于一般的常微分方程边值问题,没有通用的方法可以求出其解析解,必须采用一些数值计算的方法进行求解。
常用的边值问题的解法大致有以下几种:(1)求解特殊解的方法这种方法常用于求解具有周期性边界条件的问题。
如果问题中的边界条件满足:$y(a)=y(b)=0$,则可以将问题转化为一个周期问题,即 $y(a+k)=y(b+k)$,其中 $k=b-a$。
这时,边值问题就变成了求解这个方程的周期解,例如,可以使用Fourier 级数来求解。
(2)变分法变分法是一种基于求解最小值的方法,可以用来求解一类线性边值问题。
其基本思路是将原问题转化为求一个积分的最小值。
对于一般的边值问题 $y''+f(x)y=g(x)$,可以构造一个变分问题:$$ \delta\int_a^b \left(y'^2-f(x)y^2-2gy\right) \mathrm{d}x=0 $$ 这个问题的解可以通过对变分问题的欧拉方程求解而得到。
二阶常微分方程边值问题数值方法
其中 p( x),q( x)为,r已( x知) 函数,则由常微分方程的理论知,通过
变量替换总可以消去方程中的 项,不妨y设 变换后的方程为
y( x) q( x) y( x) r( x)
y(a) ,
y(b)
则近似差分方程成离散差分方程为
yi 1
2 yi h2
yi 1
qi
yi
ri
其中 qi q( xi ), ri r( xi ), i 1,2, , n. y0 ,
第一边界问题:
y0 , yn1
(8.9)
第二边界问题:
y1 y0 h , yn1 yn h
(8.10)
第三边界问题:
y1 (1 0h) y0 1h,
(1 0h) yn1 yn 1h
(8.11)
若 f ( x, y,是y) 的y线, y性 函数时,f 可写成
f (x, y, y) p(x) y( x) q( x) y(x) r( x)
以
y
为待定参数。
0
对第三类边界问题,仍可转化为考虑初值问题(8.5),取
y0 ,
y0 1 0 y0 ,以 y为0 待定参数。
8.2 有限差分法
将区间[a,b]进行等分:
h
ba, n1
xi
a ih, i 0,1,
,n 1,
设在
x xi , i 0,1, , n 1处的数值解为 。 yi 用中心差分近似微分,即
而且还有误差估
计:
Ri
y( xi )
yi
M 24
h2
(
xi
a)(b xi )
其中 M max y(4。) ( x)
x[a ,b]
常微分方程两点边值问题的差分方法
常微分方程两点边值问题的差分方法说实话常微分方程两点边值问题的差分方法,我一开始也是瞎摸索。
我就知道这是个挺难搞的事儿,但我就想把它弄明白。
我最早尝试直接用我之前学过的常微分方程的一些解法,可发现对于两点边值问题完全行不通,这才意识到这个问题很特殊,需要专门的方法来对付。
那我就开始了解差分方法呗。
这个差分啊,简单来说就有点像我们数东西的时候不是一个一个数,而是隔几个数一个那样,在数学里就是把连续的函数离散化。
比如说我们有个常微分方程,在一个区间上的两点边值问题,我要做的第一步,不妨就把这个区间分成好多小份,这个小份的大小我开始还不确定选多少好呢,我就试了好几个不同的值。
我试着先在网格点上近似导数。
我最开始想当然地用了一种很简单的近似方法,就像我们估算速度的时候,直接用两个点的函数值之差除以距离嘛,但是发现这样得到的结果那叫一个惨不忍睹啊,误差大得很。
后来仔细研究才知道,要根据这个常微分方程的具体形式来更好地构造近似导数,才能减小误差。
还有在处理边界条件的时候,这个可千万不能马虎。
我一开始就没太重视边界条件,结果算出的结果也完全不对。
其实就像是盖房子必须要打好地基一样,这个边界条件对于两点边值问题就是根基,如果根基歪了,那整个房子肯定也立不住。
我后来发现了一个比较靠谱的步骤。
就是在差分的时候,对于方程中的每一项,根据泰勒公式来构建合理的差分格式。
这个就像搭积木,每个部分都要搭得准确才能让整体稳固。
我把方程中的项都按照精心设计的差分格式替换掉之后,就得到了一个代数方程组,解这个方程组就能够求出在离散点上的近似解了。
不过这里面还有个小窍门,在求解方程组的时候,我刚开始没注意方程组矩阵的性质,有时候得到的解是不准确的。
我后来发现有的矩阵如果是稀疏友好型的,那就要选择专门针对稀疏矩阵的算法来求解,这样速度又快结果又准确。
我不确定我现在的方法是不是最完美的,但就目前我做的一些练习题还有自己研究的小例子来说,这个方法已经相当好用了。
打靶法
打靶法常微分方程边值问题数值解法- 正文用某种离散化数值步骤求出常微分方程边值问题在离散点上的近似解的方法。
各种实际问题导出不同类型的边值问题。
较简单的有二阶常微分方程两点边值问题:求函数y=y(x),x∈【α,b】,使它满足微分方程和边值条件式中ƒ、g1、g2为已知函数;α与b为两个给定的端点。
较一般地有一阶常微分方程组两点边值问题:求N个函数使其满足微分方程组和边值条件式中诸ƒn、g i是已知函数;r为给定的自然数。
有些问题因求解区间是无穷区间而被称作奇异边值问题,相应的边界条件变为对解在无穷远处渐近行为的限制,例如,要求y(x)在区间【0,)上平方可积或要求当x趋于无穷时,y(x)趋于某极限值。
还有些实际问题因要求解满足多个点上的条件而被称作多点边值问题。
近年来,对反映边界层现象的奇异摄动边值问题提出了一些新的数值解法。
此外,关于存在多个解的分歧现象数值解问题也引起人们的注意。
打靶法主要思路是:适当选择和调整初值条件,(选什么)求解一系列初值问题,使之逼近给定的边界条件。
如果将描述的曲线视作弹道,那么求解过程即不断调整试射条件使之达到预定的靶子,所以称作打靶法或试射法,此类方法的关键是设计选取初值的步骤。
对非线性边值问题可通过下列步骤求数值解:①计算初值问题的数值解y1。
若g(y1(b),y姈(b))=B,近似地满足,则y1即为所求;否则进行②。
②计算初值问题的数值解y2,若g(y2(b),y娦(b))=B近似地满足,则y2即为所求;否则令m=3进行③。
③将g(y(b),y┡(b))视为y(α)的函数,用线性逆插值法调整初值,即计算然后进行④。
④计算初值问题的数值解y m并进行判定:若b点边值条件近似地满足,则y m即为所求;否则令m+1崊m转向③继续计算直到满意为止。
特别地,若微分方程是线性的,则打靶法变成线性组合法,即根据常微分方程理论适当选取初值可得到一组线性独立解,利用它们的线性组合导出边值问题的解。
常微分方程边值问题解法
常微分方程边值问题解法
常微分方程边值问题解法:
常微分方程边值问题是指在一定区间内,给定一个微分方程的初始条件和边界条件,求解微分方程的解在这个区间内满足这些条件的问题。
常见的边值问题有两种类型:Dirichlet边界条件和Neumann边界条件。
解决常微分方程边值问题的方法有很多种,下面介绍其中两种常用的方法:
1. 有限差分法:
有限差分法是利用差分近似替代微分,将微分方程转化为一组代数方程。
首先将区间离散化,将连续的函数转化为离散的数值,然后利用中心差分、前向差分或后向差分的方法,将微分方程变为代数方程组,最后利用线性代数的方法求解这个方程组。
2. 有限元法:
有限元法是将区间划分为若干个小的子区间,将微分方程转化为一组局部的代数方程组,然后将这些方程组组合成整个问题的全局方程组。
有限元法可以适用于更加复杂的边值问题,但是需要更多的计算量和更高的数学水平。
总之,常微分方程边值问题的解法有很多种,需要根据具体情况选择不同的方法。
第8章--常微分方程边值问题的数值解法
第8章 常微分方程边值问题的数值解法8.1 引 言推论 若线性边值问题()()()()()(),,(),()y x p x y x q x y x f x a x b y a y b αβ'''=++≤≤⎧⎨==⎩ (8.1.2) 满足(1) (),()p x q x 和()f x 在[,]a b 上连续; (2) 在[,]a b 上, ()0q x >, 则边值问题(8.1.1)有唯一解。
求边值问题的近似解,有三类基本方法:(1) 差分法(difference method),也就是用差商代替微分方程及边界条件中的导数,最终化为代数方程求解;(2) 有限元法(finite element method);(3) 把边值问题转化为初值问题,然后用求初值问题的方法求解。
8.2 差分法8.2.1 一类特殊类型二阶线性常微分方程的边值问题的差分法设二阶线性常微分方程的边值问题为(8.2.1)(8.2.2)()()()(),,(),(),y x q x y x f x a x b y a y b αβ''-=<<⎧⎨==⎩其中(),()q x f x 在[,]a b 上连续,且()0q x ≥.用差分法解微分方程边值问题的过程是:(i) 把求解区间[,]a b 分成若干个等距或不等距的小区间,称之为单元;(ii) 构造逼近微分方程边值问题的差分格式. 构造差分格式的方法有差分法, 积分插值法及变分插值法;本节采用差分法构造差分格式;(iii) 讨论差分解存在的唯一性、收敛性及稳定性;最后求解差分方程. 现在来建立相应于二阶线性常微分方程的边值问题(8.2.1), (8.2.2)的差分方程. ( i ) 把区间[,]I a b =N 等分,即得到区间[,]I a b =的一个网格剖分:011N N a x x x x b -=<<<<=,其中分点(0,1,,)i x a ih i N =+=,并称之为网格节点(grid nodes);步长b a Nh -=. ( ii ) 将二阶常微分方程(8.2.2)在节点i x 处离散化:在内部节点(1,2,,1)i x i N =-处用数值微分公式2(4)1112()2()()()(),12i i i i i i i i y x y x y x h y x y x x h ξξ+---+''=-<< (8.2.3)代替方程(8.2.2)中()i y x '',得112()2()()()()()()i i i i i i i y x y x y x q x y x f x R x h +--+-=+,(8.2.4) 其中2(4)()()12i i h R x y ξ=. 当h 充分小时,略去式(8.2.4)中的()i R x ,便得到方程(8.2.1)的近似方程1122i i i i i i y y y q y f h +--+-=,(8.2.5)其中(),()i i i i q q x f f x ==, 11,,i i i y y y +-分别是11(),(),()i i i y x y x y x +-的近似值, 称式(8.2.5)为差分方程(difference equation),而()i R x 称为差分方程(8.2.5)逼近方程(8.2.2)的截断误差(truncation error). 边界条件(8.7.2)写成0,.N y y αβ==(8.2.6)于是方程(8.2.5), (8.2.6)合在一起就是关于1N +个未知量01,,,N y y y ,以及1N +个方程式的线性方程组:2211212211222111(2),(2),1,2,,1,(2).i i i i i N N N N q h y y h f y q h y y h f i N y q h y h f αβ-+----⎧-++=-⎪-++==-⎨⎪-+=-⎩(8.2.7)这个方程组就称为逼近边值问题(8.2.1), (8.2.2)的差分方程组(system of difference equations)或差分格式(difference scheme),写成矩阵形式2211122222223332222222111(2)11(2)11(2)11(2)11(2)N N N N N N y q h h f y q h h f y q h h f y q h h f y q h h f αβ------⎡⎤⎡⎤-+-⎡⎤⎢⎥⎢⎥⎢⎥-+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+⎢⎥⎢⎥⎢⎥-+-⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦. (8.2.8)用第2章介绍的解三对角方程组的追赶法求解差分方程组(8.2.7)或(8.2.8), 其解01,,,N y y y 称为边值问题(8.2.1), (8.2.2)的差分解(difference solution). 由于(8.2.5)是用二阶中心差商代替方程(8.2.1)中的二阶微商得到的,所以也称式(8.2.7)为中心差分格式(centered-difference scheme).( iii ) 讨论差分方程组(8.2.7)或(8.2.8)的解是否收敛到边值问题(8.2.1), (8.2.2)的解,估计误差.对于差分方程组(8.2.7),我们自然关心它是否有唯一解;此外,当网格无限加密,或当0h →时,差分解i y 是否收敛到微分方程的解()i y x . 为此介绍下列极值原理:定理8.2.1 (极值原理) 设01,,,N y y y 是给定的一组不全相等的数,设1122(),0,1,2,,i i i i i i i y y y l y q y q i N h +--+=-≥=.(8.2.9)(1) 若()0,1,2,,i l y i N ≥=, 则{}0Ni i y =中非负的最大值只能是0y 或N y ; (2) 若()0,1,2,,i l y i N ≤=, 则{}0Ni i y =中非正的最小值只能是0y 或N y .证 只证(1) ()0i l y ≥的情形,而(2) ()0i l y ≤的情形可类似证明. 用反证法. 记{}0max i i NM y ≤≤=,假设0M ≥, 且在121,,,N y y y -中达到. 因为i y 不全相等,所以总可以找到某个00(11)i i N ≤≤-,使0i y M =,而01i y -和01i y +中至少有一个是小于M 的. 此时0000000011222()2.i i i i i i i i y y y l y q y h M M M q M q M h +--+=--+<-=-因为00,0i q M ≥≥,所以0()0i l y <, 这与假设矛盾,故M 只能是0y 或N y . 证毕!推论 差分方程组(8.2.7)或(8.2.8)的解存在且唯一. 证明 只要证明齐次方程组11202()0,0,1,2,,1,0,0i i i i i i i N y y y l y q y q i N h y y +--+⎧=-=≥=-⎪⎨⎪==⎩ (8.2.10)只有零解就可以了. 由定理8.7.1知,上述齐次方程组的解01,,,N y y y 的非负的最大值和非正的最小值只能是0y 或N y . 而00,0N y y ==,于是0,1,2,,.i y i N == 证毕!利用定理8.2.1还可以证明差分解的收敛性及误差估计. 这里只给出结果: 定理8.2.2 设i y 是差分方程组(8.2.7)的解,而()i y x 是边值问题(8.2.1), (8.2.2)的解()y x 在i x 上的值,其中0,1,,i N =. 则有224()(),96i i i M h y x y b a ε=-≤-(8.2.11)其中(4)4max ()a x bM yx ≤≤=.显然当0h →时,()0i i i y x y ε=-→. 这表明当0h →时,差分方程组(8.2.7)或(8.2.8)的解收敛到原边值问题(8.7.1), (8.7.2)的解.例8.2.1 取步长0.1h =,用差分法解边值问题43,01,(0)(1)0,y y x x y y ''-=≤≤⎧⎨==⎩并将结果与精确解()()2222()3434x xy x e e ee x --=---进行比较.解 因为110N h ==,()4,()3q x f x x ==, 由式(8.2.7)得差分格式221222112289(240.1)30.10.1,(240.1)30.1,2,3,,8,(240.1)30.10.9,i i i i y y y y y x i y y -+⎧-+⨯+=⨯⨯⎪-+⨯+=⨯=⎨⎪-+⨯=⨯⨯⎩0100y y ==, 00.1,1,2,,9i x ih i i =+==, 其结果列于表8.2.1.从表8.2.1可以看出, 差分方法的计算结果的精度还是比较高的. 若要得到更精确的数值解,可用缩小步长h 的方法来实现.8.2.2 一般二阶线性常微分方程边值问题的差分法对一般的二阶微分方程边值问题1212()()()()()(),,()(),()(),y x p x y x q x y x f x a x b y a y a y b y b αααβββ'''++=<<⎧⎪'+=⎨⎪'+=⎩ (8.2.12) 假定其解存在唯一.为求解的近似值,类似于前面的做法,( i ) 把区间[,]I a b =N 等分,即得到区间[,]I a b =的一个网格剖分:011N N a x x x x b -=<<<<=,其中分点(0,1,,)i x a ih i N =+=,步长b a Nh -=. ( ii ) 对式(8.2.12)中的二阶导数仍用数值微分公式2(4)1112()2()()()(),12i i i i i i i iy x y x y x h y x y x x h ξξ+---+''=-<<代替,而对一阶导数,为了保证略去的逼近误差为2()O h ,则用3点数值微分公式;另外为了保证内插,在2个端点所用的3点数值微分公式与内网格点所用的公式不同,即21112012000022212()()()(),,1,2,,1,263()4()()()(),,23()4()3()()(),.23i i i i i i i N N N N N N N N y x y x h y x y x x i N h y x y x y x h y x y x x h y x y x y x h y x y x x h ξξξξξξ+-----⎧-''''=-<<=-⎪⎪-+-⎪''''=+<<⎨⎪⎪-+''''=+<<⎪⎩(8.2.13) 略去误差,并用()i y x 的近似值i y 代替()i y x ,(),(),()i i i i i i p p x q q x f f x ===,便得到差分方程组1111221001221211(2)(),1,2,,1,2(34),2(43),2i i i i i i i i i N N N N p y y y y y q y f i N h hy y y y h y y y y h αααβββ-++---⎧-++-+==-⎪⎪⎪+-+-=⎨⎪⎪+-+=⎪⎩(8.2.14)其中(),(),(),1,2,,1i i i i i i q q x p p x f f x i N ====-, i y 是()i y x 的近似值. 整理得12021222211222121(23)42,(2)2(2)(2)2,1,2,,1,4(32)2.i i i i i i i N N N h y y y h hp y h q y hp y h f i N y y h y h αααααβββββ-+---+-=⎧⎪---++==-⎨⎪-++=⎩ (8.2.15)解差分方程组(8.2.15),便得边值问题(8.2.12)的差分解01,,,N y y y .特别地, 若12121,0,1,0ααββ====,则式(8.2.12)中的边界条件是第一类边值条件:(),();y a y b αβ==此时方程组(7.7.16)为221112112211221211112(2)(2)2(2),(2)2(2)(2)2,2,3,,2,(2)2(2)2(2).i i i i i i i N N N N N N h q y hp y h f hp hp y h q y hp y h f i N hp y h q y h f hp αβ-+------⎧--++=--⎪---++==-⎨⎪---=-+⎩(8.2.16) 方程组(8.2.16)是三对角方程组,用第2章介绍的解三对角方程组的追赶法求解差分方程组(8.2.16),便得边值问题(8.2.12)的差分解01,,,N y y y .( iii ) 讨论差分方程组(8.2.16)的解是否收敛到微分方程的解,估计误差. 这里就不再详细介绍.例8.2.2取步长/16h π=,用差分法求下列边值问题的近似解,并将结果与精确解进行比较.精确解是1()(sin 3cos )10y x x x =-+. 解 因为(20)8N h π=-=,()1,()2,()cos p x q x f x x =-=-=, 由式(8.2.17)得差分格式()()()()()()()()()()()()()2122211222122216(2)216(1)216cos 16216(1)(0.3),216(1)2216(2)216(1)216cos 16,2,3,,6,216(1)2216(2)216cos 7i i i N N y yy y y i i y y πππππππππππππ-+--⎡⎤--⨯-++⨯-⎡⎤⎣⎦⎣⎦=--⨯-⨯-⎡⎤⎣⎦⎡⎤-⨯---⨯-++⨯-⎡⎤⎡⎤⎣⎦⎣⎦⎣⎦==⎡⎤-⨯---⨯-⎡⎤⎣⎦⎣⎦=()()16216(1)(0.1),ππ⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪-+⨯-⨯-⎡⎤⎣⎦⎩080.3,0.1y y =-=-, 00.1,1,2,,9i x ih i i =+==, 其结果列于表8.2.2.8.3 有限元法有限元法(finite element method)是求解微分方程定解问题的有效方法之一,它特别适用在几何、物理上比较复杂的问题. 有限元法首先成功地应用于结构力学和固体力学,以后又应用于流体力学、物理学和其他工程科学. 为简明起见,本节以线性两点边值问题为例介绍有限元法.考虑线性两点边值问题()(8.3.1)(8.3.2)()()()()(),,(),(),Ly p x y x q x y x f x a x b y a y b αβ⎧''⎪=-+=≤≤⎨==⎪⎩其中1()0,()0,C [,]p x q x p a b >≥∈, ,C[,]q f a b ∈.此微分方程描述了长度为b a -的可变交叉截面(表示为()q x )的横梁在应力()p x 和()f x 下的偏差()y x .8.3.1 等价性定理记{}221C [,]()C [,],(),()a b y y y x a b y a y b αβ==∈==, 引进积分()22()()[()]()()2()()d baI y p x y x q x y x f x y x x '=+-⎰. (8.3.3)任取21()C [,]y y x a b =∈,就有一个积分值()I y 与之对应,因此()I y 是一个泛函(functional),即函数的函数. 因为这里是,y y '的二次函数,因此称()I y 为二次泛函.对泛函(8.3.3)有如下变分问题(variation problem):求函数21C [,]y a b ∈,使得对任意21C [,]y a b ∈, 均有()()I y I y ≥, (8.3.4)即()I y 在y 处达到极小, 并称y 为变分问题(8.3.4)的解.可以证明:定理8.3.1(等价性定理) y 是边值问题(8.3.1), (8.3.2)的解的充分必要条件是y 使泛函()I y 在21C [,]a b 上达到极小,即y 是变分问题(8.3.4)在21C [,]a b 上的解. 证 (充分性) 设21C [,]y a b ∈是变分问题()I y 的解;即y 使泛函()I y 在21C [,]a b 上达到极小,证明y 必是边值问题(8.3.1), (8.3.2)的解.设()x η是2C [,]a b 任意一个满足()()0a b ηη==的函数,则函数21()()()C [,]y x y x x a b αη=+∈,其中α为参数. 因为y 使得()I y 达到极小,所以()()I y I y αη+≥,即积分()22()()[()()]()[()()]2()[()()]baI y p x y x x q x y x x f x y x x dxαηαηαηαη''+=+++-+⎰作为α的函数,在0α=处取极小值()I y ,故d()0d I y ααηα=+=. (8.3.5) 计算上式,得()()()()()022(8.d()d d ()[()()]()[()()]2()[()()]d d 2()[()()]()2()[()()]()2()()d 2()()()()()()()()d .bab abaI y p x y x x q x y x x f x y x x x p x y x x x q x y x x x f x x x p x y x x q x y x x f x x x ααααηααηαηαηααηηαηηηηηη===+''=+++-+'''=+++-''=+-⎰⎰⎰3.6)利用分部积分法计算积分[][]()()()d ()()d ()()()()()()()d ()()()d ,bbaab ba abap x y x x x p x y x x p x y x x x p x y x x x p x y x x ηηηηη'''='''=-''=-⎰⎰⎰⎰代入式(8.3.6),得()0(8.3.7)d()2()()()()()()d 0.d b a I y p x y x q x y x f x x x ααηηα'=⎡⎤⎣⎦'+=-+-=⎰因为()x η是任意函数,所以必有()()()()()()0p x y x q x y x f x ''-+-≡. (8.3.8)否则,若在[,]a b 上某点0x 处有()00000()()()()()0p x y x q x y x f x ''-+-≠,不妨设()00000()()()()()0p x y x q x y x f x ''-+->,则由函数的连续性知,在包含0x 的某一区间00[,]a b 上有()()()()()()0p x y x q x y x f x ''-+->.作002200000,[,]\[,],()()(),.x a b a b x x a x b a x b η∈⎧⎪=⎨--≤≤⎪⎩ 显然2()C [,]x a b η∈,且()()0a b ηη==,但()()()()()()()d ba p x y x q x y x f x x x η⎡⎤''-+-⎢⎥⎣⎦⎰ ()00()()()()()()d 0b a p x y x q x y x f x x x η⎡⎤''=-+->⎢⎥⎣⎦⎰,这与式(8.3.7)矛盾. 于是式(8.3.8)成立,即变分问题(8.3.4)的解y 满足微分方程(8.3.1), 且(),()y a y b αβ==故它是边值问题(8.3.1), (8.3.2)的解.(必要性) 设()y y x =是边值问题(8.3.1), (8.3.2)的解,证明y 是变分问题(8.3.4)的解;即:y 使泛函()I y 在21C [,]a b 上达到极小.因为()y y x =满足方程(8.3.1),所以()()()()()()0p x y x q x y x f x ''-+≡.设任意21()C [,]y y x a b =∈,则函数()()()x y x y x η=-满足条件()()0a b ηη==,且2()C [,]x a b η∈. 于是()()[]()222222()()()()()[()()]()[()()]2()[()()]d ()[()]()[()]2()()d 2()()()()()()()()d ()[()]()[()]d baba baaI y I y I y I y p x y x x q x y x x f x y x x x p x y x q x y x f x y x xp x y x x q x y x x f x x x p x x q x x xηηηηηηηηη-=+-''=+++-+'-+-''=+-++⎰⎰⎰()()()22222()()()()()()d ()[()]()[()]d ()[()]()[()]d .bb ba a bap x y x q x y x f x x x p x x q x x xp x x q x x x ηηηηη⎡⎤'''=--+++⎢⎥⎣⎦'=+⎰⎰⎰⎰因为()0,()0p x q x >≥,所以当()0x η≠时,()22()[()]()[()]d 0bap x x q x x x ηη'+>⎰, 即()()0I y I y ->.只有当()0x η≡时,()()0I y I y -=. 这说明y 使泛函()I y 在21C [,]a b 上达到极小. 证毕!定理8.3.2 边值问题(8.3.1), (8.3.2)存在唯一解.证明 用反证法. 若12(),()y x y x 都是边值问题(8.3.1), (8.3.2)的解,且不相等,则由定理8.3.1知,它们都使泛函()I y 在21C [,]a b 上达到极小,因而12()()I y I y > 且 21()()I y I y >,矛盾!因此边值问题(8.3.1), (8.3.2)的解是唯一的.由边值问题解的唯一性,不难推出边值问题(8.3.1), (8.3.2)解的存在性(留给读者自行推导).8.3.2 有限元法等价性定理说明,边值问题(8.3.1), (8.3.2)的解可化为变分问题(8.3.4)的求解问题. 有限元法就是求变分问题近似解的一种有效方法. 下面给出其解题过程:第1步 对求解区间进行网格剖分01,i n a x x x x b =<<<<<=区间1[,]i i i I x x -=称为单元,长度1(1,2,,)i i i h x x i n -=-=称为步长,1max i i nh h ≤≤=. 若(1,2,,)i h h i n ==,则称上述网格剖分为均匀剖分.给定剖分后,泛函(8.3.3)可以写成()22()()[()]()()2()()d baI y p x y x q x y x f x y x x '=+-⎰()12211()[()]()()2()()d i i nnx i x i i p x y x q x y x f x y x xS -=='=+-∑∑⎰记. (8.3.9)第2步 构造试探函数空间。
§5.7 边值问题的数值解法
© 2009, Henan Polytechnic University §7 边值问题的数值解法
1010
第五章 常微分方程数值解法
即为如下的线性方程组:
1 1 2 h2q 1 1 1 2 h 2 q2 y0 y h2 f 1 1 y2 h2 f 2 ... 1 yn1 h2 f n1 1 yn
© 2009, Henan Polytechnic University §7 边值问题的数值解法
i 1, ... , N 1
6 6
第五章 常微分方程数值解法
考虑如下的线性方程
y( x ) p( x ) y( x ) q( x ) y( x ) r ( x ), a x b y(a ) , y(b)
先猜测一个初始斜率 y (a) = s,通过解初值问题 y f ( x , y , y) y(a ) a y(b) = (s) y( a ) s 找出s*使得(s*) = ,即把问 题转化为求方程 (s) = 0 的根。
© 2009, Henan Polytechnic University §7 边值问题的数值解法
© 2009, Henan Polytechnic University §7 边值问题的数值解法
1414
考虑如下的二阶常微分方程的边值问题
y( x ) q( x ) y( x ) f ( x ), a x b y(a ) , y(b) 其中q(x)(0),f(x)在[a,b]上连续,,为常数。
对应的差分问题是:
微分方程的边值问题【最新】
微分方程边值问题的数值方法本部分内容只介绍二阶常微分方程两点边值问题的的打靶法和差分法。
二阶常微分方程为(,,),y f x y y a x b '''=≤≤(1.1)当(,,)f x y y '关于,y y '为线性时,即(,,)()()()f x y y p x y q x y r x ''=++,此时(1.1)变成线性微分方程()()(),y p x y q x y r x a x b '''--=≤≤(1.2)对于方程(1.1)或(1.2),其边界条件有以下3类: 第一类边界条件为(),()y a y b αβ==(1.3)当0α=或者0β=时称为齐次的,否则称为非齐次的。
第二类边界条件为(),()y a y b αβ''==(1.4)当0α=或者0β=时称为齐次的,否则称为非齐次的。
第三类边界条件为0101()(),()()y a y a y b y b ααββ''-=+=(1.5)其中00000,0,0αβαβ≥≥+>,当10α=或者10β=称为齐次的,否则称为非齐次的。
微分方程(1.1)或者(1.2)附加上第一类,第二类,第三类边界条件,分别称为第一,第二,第三边值问题。
1 打靶法介绍下面以非线性方程的第一类边值问题(1.1)、(1.3)为例讨论打靶法,其基本原理是将边值问题转化为相应的初值问题求解。
【原理】假定()y a t '=,这里t 为解()y x 在x a =处的斜率,于是初值问题为(,,)()()y f x y y y a y a t α'''=⎧⎪=⎨⎪'=⎩(1.6)令z y '=,上述二阶方程转化为一阶方程组(,,)()()y zz f x y z y a z a tα'=⎧⎪'=⎪⎨=⎪⎪=⎩ (1.7)原问题转化为求合适的t ,使上述初值问题的解(,)y x t 在x b =的值满足右端边界条件(,)y b t β=(1.8)这样初值问题(1.7)的解(,)y x t 就是边值问题(1.1)、(1.3)的解。
二阶常微分方程边值问题的数值解法
摘要本文主要研究二阶常微分方程边值问题的数值解法。
对线性边值问题,我们总结了两类常用的数值方法,即打靶法和有限差分方法,对每种方法都列出了详细的计算步骤和Matlab程序代码,通过具体的算例对这两类方法的优缺点进行了细致的比较。
关键字:常微分方程边值问题;打靶法;差分法;ABSTRACTThis article mainly discusses the numerical methods for solving Second-Order boundary value problems for Ordinary Differential Equations. On the one hand, we review two types of commonly used numerical methods for linear boundary value problems, i.e. shooting method and finite difference method. For each method, we give both the exact calculating steps , we compare the advantages and disadvantages in detail of these two methods through a specific numerical example.Key words:Boundary-Value Problems for Ordinary Differential Equations;Shooting Method;Finite Difference Method;目录第一章引言................................................................................................................... - 1 -第二章二阶线性常微分方程.................................................................................. - 2 -2.1试射法(“打靶”法) ............................................................................................ - 3 -2.1.1简单的试射法............................................................................................ - 3 -2.1.2 基于叠加原理的试射法........................................................................... - 4 -2.2 有限差分法......................................................................................................... - 10 -2.2.1 有限差分逼近的相关概念...................................................................... - 11 -2.2.2 有限差分方程的建立............................................................................. - 13 -2.2.3 其他边值条件的有限差分方程............................................................. - 14 -2.2.4 有限差分方程的解法............................................................................. - 16 -第三章二阶非线性微分方程........................................................ 错误!未定义书签。
常微分方程边值问题有限元
常微分方程边值问题有限元有限元法可归结为如下几个步骤:1.转换成变分问题(应该会用到边界条件)2)对解域进行刨分(可以是不均匀)3)构造基函数(本篇采用基于线性插值的基函数)4)推导出有限元方程5)求解有限元方程6)收敛性和误差估计# 奇怪:这个库必须放在最前面才能一次加载成功usingPlotsgr()# 解决Colab不显示输出数学公式的问题using Markdown: MD, LaTeXfunction latex(expr)expr |> tex |> LaTeXend;考虑两点边值问题:\[ \begin{aligned} &Lu=-\frac{d}{dx}\left(p\frac{du}{dx}\right)+qu=f ,\qquad a < x < b \\ & u(a)=0,\frac{d}{dx}u(b)=0 \end{aligned} \]对应的变分方程(用到两个边界条件):\[ \begin{aligned}&a(u,v)=(f,v),\qquad \forall v \\ & a(u,v)=\int^b_a{\left(p\frac{du}{dx}\frac{dv}{dx}+quv\ right)dx}\end{aligned} \]区间剖分(可以不均匀):\[ a = x_0 < x_1 < \dots < x_n=b \\ h_i=x_i-x_{i-1}, \qquad h = \mathrm{max} \{h_i\} \]与此对应的近似解序列 \(\{u_i\}\) (待求)为:\[ u_0=0, u_1,u_2,\dots,u_n \]通过这 \(n+1\) 个点的值可进行线性插值得到近似解\(u_h(x)\) :\[ \begin{aligned}u_h(x)=\frac{x_i-x}{h_i}u_{i-1}+\frac{x-x_{i-1}}{h_i}u_i,\qquad x_{i-1} < x < x_i \end{aligned} \]可引入线性无关的“山形函数”序列 \(\varphi_i(x)\) 构成基底:\[ \boxed{\xi = \frac{x-x_{i-1}}{h_i}\qquad x_{i-1} < x < x_i\qquad 0<\xi<1} \]\[ \varphi_0(x)=\left\{\begin{aligned}&1-\xi, &x_0 < x < x_1 \\ &0, & 其它\end{aligned}\right . \]\[ \varphi_i(x)=\left\{\begin{aligned}&\xi, &x_{i-1} < x < x_i \\ &1-\xi,& x_i < x < x_{i+1} \\ &0, & 其它\end{aligned}\right . \qquad i=1,2,\dots,n-1 \]\[ \varphi_n(x)=\left\{\begin{aligned}&\xi, &x_{n-1} < x < x_n \\ &0, & 其它\end{aligned}\right . \]不难验证,前面的线性插值函数 \(u_h(x)\) ,可用这个序列\(\varphi_i\) 为基底展开(下面考虑了 \(u_0=0\) ):\[ u_h(x)=\sum^n_{i=1}{u_i \varphi_i(x)} \]由图可知(亦可简单验算):\[ \varphi_i(x)\varphi_j(x)=0, \qquad |i-j|\ge 2 \\\frac{d\varphi_i}{dx}\frac{d\varphi_j}{dx}=0, \qquad|i-j|\ge 2 \]所以 \(a(\varphi_i,\varphi_j)\) 的非零值只可能有:\[ \begin{aligned}&a(\varphi_{1},\varphi_1),a(\varphi_ {2},\varphi_1) \\ &a(\varphi_{j-1},\varphi_j),a(\varphi_{j},\varphi_j),a(\varphi_{j+1} ,\varphi_j),\qquad j=2,\dots,n-1\\ & a(\varphi_{n-1},\varphi_n),a(\varphi_{n},\varphi_{n}) \end{aligned} \]可分别算出这三类非零值:\[ a(\varphi_{j-1},\varphi_j)=\int^1_0{\left[-h_j^{-1}p(x_{j-1}+h_j\xi)+h_j q(x_{j-1}+h_j\xi)(1-\xi)\xi\right]d\xi} \]\[ \begin{aligned}a(\varphi_j,\varphi_j)&=\int^1_0{\le ft[h_j^{-1}p(x_{j-1}+h_j\xi)+h_j q(x_{j-1}+h_j\xi)\xi^2\right]d\xi} \\ &+\int^1_0{\left[h_{j+1}^{-1}p(x_{j}+h_{j+1}\xi)+h_{j+1} q(x_{j} +h_{j+1}\xi)(1-\xi)^2\right]d\xi}\end{aligned} \] \[ a(\varphi_{j+1},\varphi_j)=\int^1_0{\left[-h_{j+1}^{-1}p(x_{j}+h_{j+1}\xi)+h_{j+1}q(x_{j}+h_{j+1}\xi)(1-\xi)\xi\right]d\xi} \]\[ a(\varphi_n,\varphi_n)=\int^1_0{\left[h_n^{-1}p(x_{n-1}+h_n\xi)+h_n q(x_{n-1}+h_n\xi)\xi^2\right]d\xi} \]using SciPy# # “山形”基函数#functio n φ(t,i,x,h,n)if i >1&& t>=x[i-1] && t<=x[i]return (t-x[i-1])/h[i-1]elseif i < n+2&& t>x[i] && t<=x[i+1]return1-(t-x[i])/h[i]elsereturn0endend;# # a(φ_i,φ_j)## 假设已有p(t),q(t)#functionaa(i,j,x,h,n)if abs(i-j) >=2return0;end;if i==j-1α(ξ)=-p(x[j-1]+h[j-1]*ξ)/h[j-1]+h[j-1]*q(x[j-1]+h[j-1]*ξ)*(1-ξ)*ξ;return SciPy.integrate.quad(α, 0, 1)[1];end;if i==j && j<n+1β(ξ)=p(x[j-1]+h[j-1]*ξ)/h[j-1]+h[j-1]*q(x[j-1]+h[j-1]*ξ)*ξ^2+p(x[j]+h[j]*ξ)/h[j]+h[j]*q(x[j]+h[j]*ξ)* (1-ξ)^2;return SciPy.integrate.quad(β, 0, 1)[1];end;if i==j && j==n+1βn(ξ)=p(x[j-1]+h[j-1]*ξ)/h[j-1]+h[j-1]*q(x[j-1]+h[j-1]*ξ)*ξ^2;return SciPy.integrate.quad(βn, 0, 1)[1];end;if i==j+1γ(ξ)=-p(x[j]+h[j]*ξ)/h[j]+h[j]*q(x[j]+h[j]*ξ)*(1-ξ)*ξ;return SciPy.integrate.quad(γ, 0, 1)[1];end;end;正式求解的julia代码:using Random# 参数选定a=0; b=1f(t)=(pi^2/2)sin(pi*t/2);p(t) =1;q(t) = pi^2/4;function NSolve(n)# 随机生成的不均匀的区间刨分h = [0.5*rand()+0.5for i in1:n];h = (b-a)*h/sum(h);x = zeros(n+1);x[1]=a; x[n+1]=b;x[2:n]=[sum(h[1:i]) for i in1:(n-1)];h[n]=x[n+1]-x[n];# 待求近似解u = zeros(n+1);# 计算a(φ_i,φ_j)矩阵A = [aa(i,j,x,h,n) for j in2:n+1, i in2:n+1];# 计算(f,φ_j)列向量fφ = [SciPy.integrate.quad(t->f(t)*φ(t,j,x,h,n), x[j-1],(j==n+1? b : x[j+1]))[1] for j in2:n+1];# 解出插值端点值u[2:n+1] = in v(A)*fφ;# 近似解序列(x,u)end;做为对比,也可解出精确解:using SymPy@vars ty = SymFunction("y")diffeq =-diff(y(t),t,2)+(PI^2/4)y(t)⩵(PI^2/2)*sin(t*PI/2)# 通解ex = dsolve(diffeq, y(t))# 根据边界条件确定积分常数ex1 = rhs(ex)ex2 = diff(ex1,t)eqs = [ex1(t=>0)⩵0,ex2(t=>1)⩵0]C = solve(eqs,[Sym("C1"),Sym("C2")])# 解析解ex = ex(C)ex |> latex |> MD\[ y{\left(t \right)} = \sin{\left(\frac{\pi t}{2} \right)} \]绘制近似解和精确解# 精确解plot(rhs(ex),color="black",xlims=(-0.1,1.1),label="U",xlabel="x",ylabel="u(x)")# 近似解 n=4,8plot!(NSolve(4),color="green",label="u4")plot!(NSolve(8),color="red",label="u8")《微分方程数值解法(第4版)-李荣华&刘播-高等教育出版社-2009》。
关于常微分方程组边值问题的研究的开题报告
关于常微分方程组边值问题的研究的开题报告尊敬的导师:您好!感谢您在百忙之中抽出时间阅读我的开题报告,本文将简述我对常微分方程组边值问题的研究的初步规划。
1.研究的背景和意义常微分方程组是数学的重要分支之一,边值问题是研究常微分方程组的重要问题之一。
常微分方程组边值问题广泛应用于物理、化学、力学等各个领域,在实际应用中有非常重要的作用。
因此,对于常微分方程组边值问题的深入研究对于学术界和工业界都具有重要的意义。
2.研究的目的和内容本次研究的目的在于进一步深入研究常微分方程组边值问题,探究其基本理论。
我们将从以下方面进行研究:(1)研究边值问题的定义和性质。
(2)研究常微分方程组的解的存在性和唯一性。
(3)研究解的连续依赖性和解的依赖于参数的连续性。
(4)研究常微分方程组边值问题的边值条件。
3.研究方法和技术路线我们将采用数学分析的方法,结合常微分方程理论和边值问题的基本概念进行研究。
具体的技术路线如下:(1)建立常微分方程组的数学模型。
(2)引入边值问题的相关概念,对问题进行分析。
(3)探究解的存在性和唯一性。
(4)研究解的连续依赖性和解的依赖于参数的连续性。
(5)研究边界条件。
(6)进行数学分析并给出定理和解的表达式。
4.预计成果我们将通过以上的研究方法和技术路线,得出如下成果:(1)较为系统和深入地掌握常微分方程组边值问题的基本理论和方法。
(2)得出常微分方程组边值问题的一些重要性质和解的表达式。
(3)通过分析实际问题,得出一些有用的结论和应用方法。
5.研究计划本次研究预计耗时一年,具体的研究计划如下:第一季度:研究边值问题的基本概念和定义;第二季度:研究常微分方程组的解的存在性和唯一性;第三季度:研究解的连续依赖性和解的依赖于参数的连续性;第四季度:研究常微分方程组边值问题的边值条件。
6.结语本次研究将会进一步深入研究常微分方程组边值问题的基本理论和方法,得出一些有用的结论和应用方法。
希望在导师的指导下能够顺利完成研究任务,有益于学术界和工业界。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常微分方程组边值问题解法打靶法Shooti ng Method (shoot in g.m )% 丁靶法求常微分方程的边值问题function [x,a,b ,n]=shooti ng(fu n, xO,x n, eps) if nargin<3eps=1e-3;endx1=x0+ra nd;[a,b]=ode45(fu n, [0,10],[0,x0]');c0=b(le ngth(b),1);[a,b]=ode45(fu n, [0,10],[0,x1]');c1=b(le ngth(b),1);x2=x1-(c1-x n)*(x1-x0)/(c1-c0);n=1;while (no rm(c1-x n)>=eps & no rm(x2-x1)>=eps) x0=x1;x 仁x2;[a,b]=ode45(fu n,[ 0,10],[0,x0]');cO=b(le ngth(b),1);[a,b]=ode45(fu n,[ 0,10],[0,x1]');c1= b(le ngth(b),1)x2=x1-(c1-x n)*(x1-x0)/(c1-c0);n=n+1;endx=x2;应用打靶法求解下列边值问题:y 10 0 解:将其转化为常微分方程组的初值问题命令:xO=[O:O.1:1O];y0=32*((cos(5)-1)/si n( 5)*si n(x0/2)-cos(x0/2)+1); plot(xO,yO,'r')hold on [x,y]=ode45('odebvp',[0,10],[0,2]'); plot(x,y(:,1))[x,y]=ode45('odebvp',[0,10],[0,5]'); plot(x,y(:,1))[x,y]=ode45('odebvp',[0,10],[0,8]'); plot(x,y(:,1)) [x,y]=ode45('odebvp',[0,10],[0,10]'); plot(x,y(:,1))dy i dx y 2 dy 2 dx y i 0y 4 y odydx X0真实解30'12^4567^9 10函数:(odebvp.m)泌值常微分方程(组)函数function f=odebvp(x,y)f(1)=y(2);f(2)=8-y(1)/4;f=[f(1);f(2)];命令:[t,x,y, n]=shoot in g('odebvp',10,0,1e-3)计算结果:(eps=0.001 )t=11.9524plot(x,y(:,1))x0=[0:1:10];y0=32*((cos(5)-1)/si n( 5)*si n(x0/2)-cos(x0/2)+1); hold onplot(xO,yO, ' o')有限差分法 Finite Differenee Methods FDM同上例:Y i i2Y i y i ih 2 2 ——14函数:(differe nce.m )%有限差分法求常微分方程的边值问题 function [x,y]=differe nce(xO,x n,yO,yn,n) h=(x n-xO)/n;a=eye( n-1)*(-(2-h A 2/4)); for i=1: n-2 a(i,i+1)=1; a(i+1,i)=1; endb=o nes( n-1,1)*8*hA2; b(1)=b(1)-0; b(n-1)=b( n-1)-0; yy=a\b;x(1)=x0;y(1)=y0; for i=2: n x(i)=x0+(i-1)*h;Y i i 2若划分为10个区间,则:h- Y i Y i 1 8h 24(differe nce.m )1h 2 2 411Y 1 Y 28h 28h 20 h 2Y n 2 8h 224 1Y n 18h 2 0.2h 124y(i)=yy(i-i);endx(n)=xn;y(n)=yn;命令:[x,y]=differe nce(0,10,0,0,100);计算结果:xO=[O:O.1:1O];y0=32*((cos(5)-1)/si n( 5)*si n(x0/2)-cos(x0/2)+1);plot(xO,yO,'r')hold on[x,y]=differe nce(0,10,0,0,5);plot(x,y,'.')[x,y]=differe nce(0,10,0,0,10);plot(x,y,'--')[x,y]=differe nce(0,10,0,0,50);plot(x,y,'-.')正交配置法Orthogonal Collocatioin Methods CM构造正交矩阵函数(collmatrix.m )%E交配置矩阵(均用矩阵法求对称性与非对称性正交配置矩阵) function [am,bm,wm,an,bn,wn]=collmatrix(a,m,fm,n,fn) 真实解的3 4 6 7 9 9 1DXxO=symm(a,m,fm); %a为形状因子;m为零点数;fm为对称的权函数(0为权函数1,非0为权函数1-x A2)for i=1:mxm(i)=x0(m+1-i);endxm(m+1)=1;for j=1:m+1for i=1:m+1qm(j,i)=xm(j)A(2*i-2);cm(j,i)=(2*i-2)*xm(j)A(2*i-3);dm(j,i)=(2*i-2)*(2*i-3+(a-1))*xm(j)A(2*i-3+(a-1)-1-(a-1));endfmm(j)=1/(2*j-2+a);endam=cm*i nv(qm);bm=dm*i nv(qm);wm=fmm*i nv(qm);x1=unsymm(n,fn); %n 为零点数;fn为非对称的权函数(0为权函数1,非0为权函数1-x) xn (1)=0; for i=2: n+1xn( i)=x1( n+2-i);endxn(n+2)=1;for j=1: n+2for i=1: n+2qn (j,i)=x n(j)A(i-1);if j==0 | i==1cn (j,i)=0;elsecn (j,i)=(i-1)*x n(j)A(i-2);endif j==0 | i==1 | i==2dn (j,i)=O;elsedn (j,i)=(i-2)*(i-1)*x n(jF(i-3);endendfnn (j)=1/j;endan=cn *i nv(qn);bn=dn *i nv(qn); wn=fnn*inv(qn); %E交多项式求根(适用于对称问题)fun ctio n p=symm(a,m,fm) %a for i=1:mc1=1;c2=1;c3=1;c4=1;for j=0:i-1c1= c1*(-m+j);if fm==0c2=c2*(m+a/2+j);% elsec2=c2*(m+a/2+j+1);% endc3=c3*(a/2+j);c4=c4*(1+j);endp(m+1-i)=c1*c2/c4/c3;endp(m+1)=1;%为多项式系数向量p=sqrt(roots(p)); 为形状因子,m为配置点数,fm为权函数权函数为1权函数为1-x A2,求出根后对对称问题还应开方才是零点%E交多项式求根(适用于非对称性问题)解:(1)标准化令x r/R ,y C/C S 代入微分方程及边界条件得:丄2 x 2dy36yx 2dx dxx 0単0 dx x 1, y 1fun ctio n p=un sym m(n,fn) if fn==0r(1)=(-1)A n*n *( n+1);% 权函数为 1elser(1)=(-1)A n*n*(n+2);% 权函数为 1-x end for i=1: n-1 if fn==0r(i+1)=( n-i)*(i+n+1)*r(i)/(i+1)/(i+1);% elser(i+1)=( n-i)*(i+n+2)*r(i)/(i+1)/(i+1);% end end for j=1: np( n+1-j)=(-1)A(j+1)*r(j); endp(n +1)=(-1)A( n+1); p=roots(p);权函数为1权函数为1-x 应用正交配置法求解以下等温球形催化剂颗粒内反应物浓度分布,其浓度分布的数学 模型为:丄r 2 drr r2dC r dr36C R 2dC 0,丁 dr(2)离散化N 1B ji y i 36y j 0i 1j 1, 2,N 1(3)转化为代数方程组(以 N 3为例)因为y N i 目41,所以整理上式得:B 11 36 B 12 B 13B 21 B 22 36 B 23 B 31 B 32 B 33 36B 41 B 42 B 43y iy 2 y 3 B 14 B 24B 34 B 44 36 本例中的代数方程组为线性方程组,可采用线性方程组的求解方法;若为非线性方程组则 采用相应的方法求解。
命令:N=3,权函数为1-x [am,bm,wm,a n,bn,wn ]=collmatrix(3,3,1,3,1);b1=bm;for i=1:4 b1(i,i)=bm(i,i)-36; end a0=b1(1:4,1:3); b0=-b1(1:4,4); y=aO\bO; y(4)=1;p=exam31(3,3);(注意要对文件修改权函数为 x=[0.3631,0.6772,0.8998,1]; %零点 plot(x,y,'o')hold onx0=0:0.1:1; % 真实解 y0=si nh(6*x0)./x0/si nh(6); plot(xO,yO,'r') (只用对称性配置矩阵) 1-x 2)若权函数改为1,则以下语句修改,其他不变 [am,bm,wm,a n,b n,w n]=collmatrix(3,3,0,3,1);(只用对称性配置矩阵)r1 2 3 4 yyyy3^142434BBB33433421112 3 4BBBp=exam31(3,3);(注意要对文件修改权函数为1)x=[0.4058,0.7415,0.9491,1]; % 零点计算结果:权函数为1- x权函数为1%11正交配置法0.9真实解0.80.7 ・0.6 -y 0.5 -0.4 - -0.3 -X:0.2 --0.1 --1ii 1 ■0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1x边值问题的MatLab解法精确解:2x函数:(collfuni.m ) fun ctio n f=collfu ni(x,y) f(i)=y(2);f(2)=4*y(1);f=[f(1);f(2)];(collbci.m ) function f=collbc1(a,b) f=[a(1)-1;b(1)-exp(2)];命令:soli ni t=bvpi ni t([0:0.1:1],[1,1]) sol=bvp4c(@collfu n1,@collbc1,soli nit) plot(sol.x,sol.y)hold onplot(sol.x,exp(2*sol.x),'*')yi y2 真实解y 4y 0 x 1y 0 1, y 1 e2y i yy2 4y iy i 0 i, y i i e2真实解精确解:函数:(collfun2.m )function f=collfun2(x,y) f(1)=y(2);f(2)=(1-x.A 2).*exp(-x)+2*y(1)-(x+1).*y(2); f=[f(1);f(2)];(collbc2.m )function f=collbc2(a,b) f=[a(2)-2;b(2)-exp(-1)];命令:soli nit=bvpi ni t([0:0.1:1],[1,1]);sol=bvp4c(@collfu n2,@collbc2,soli nit); plot(sol.x,sol.y) hold onplot(sol.x,(sol.x-1).*exp(-sol.x),'*')y x 1 y 2y 1 x 2 e x0 x 1y 0 2, y 1 1/ey i y 2y 2 1 x 2 e x 2y 1 % 0 2, y 1 1x 1 y 21/e 真实解函数:(collfu n3.m ) function f=collfun3(x,y) f(i)=y(2);f(2)=(2-log(x))./x+y(1)./x-y(2).A2; f=[f(i);f(2)];(collbc3.m )function f=collbc3(a,b) f=[2*a(i)-a (2);b(2)-1.5];命令:soli nit=bvpi ni t([1:0.1:2],[1,1]);sol=bvp4c(@collfu n3,@collbc3,soli nit); plot(sol.x,sol.y) hold onplot(sol.x,sol.x+log(sol.x),'*')真实解2y yy12ln x 1 x 2x x2y 1y 1 0,y 23/2精确解:y x In xy 2 2 In xx2y i 1 y 2 i 0,y i y 2xy 2 23/2在260 C 的基础面上,为促进传热在此表面上 增加纯铝的圆柱形肋片,其直径为25mm 高为150mm 该柱表面受到16 C 气流的冷却,气流与肋 片表面的对流传热系数为15W/m 2 K ,肋端绝热;肋片的导热系数为 236W/m K ,假设肋片的导热 热阻与肋片表面的对流传热热阻相比可以忽略;试 求肋片中的温度分布,及单个肋片的散热量为多 少?解:根据以上条件可知:导热热阻与对流热阻相比可以忽略,则在肋片径向上没有温 度分布,在轴向上存在温度分布,外界气流与肋片的对流传热则可转化为内热源;故该问 题为导热系数为常数的一维稳定热传导,其导热微分方程为:这是两点边值的常微分方程求解问题,故可转化为如下形式:y iy 2hp y yA Cy 2 H 0, 0边界条件为:x 0时,t 0 分析解:t t t 0 td 2t dx 2hp t t A C260 C (肋根); x H 时,dtdx0 (肋端绝热)。