两点边值问题的差分求解

微分方程数值解实验报告
姓名 丁建伟 学号 200708020211 日期 2010.11.25
实验项目 两点边值问题的差分求解 指导教师 徐强
一、上机实验的问题和要求(需求分析):
实验内容:
(I) 分别在步长h=1/20,1/40,1/80,1/160情形下用中心差分格式计算齐次两点
边值问题-u"=f,u(0)=u(1)=0。其中f(x) = 100*exp(-10*x),精确解为u(x) =
1 - (1-exp(-10))*x - exp(-10*x)
(II) 给出差分解近似精确解在无穷范数和L2范数下的误差阶。
目的与要求:
掌握中心差分格式的程序实现
掌握分析算法误差的方法
二、程序设计的基本思想,原理和算法描述:

基本思想及原理:
做均匀网格剖分:

1010Nxxx
,分点ihxi步长nh1

在节点ix处,对微分方程离散化)(22xfdxud
)(12 )()(2)(344222211hOdxudhdxudhxuxuxuiiiii



有)()( )()(2)(211uRxfhxuxuxuiiiii
其中 2434()()12iihduRuOhdx
记u在节点Nkxk~0,数值解为 Nkuk~0,,
则有,2:211iiiiihfhuuuuL
比较知)()(:)(uRxfxuLiiih
所以()()ihiiRuLuxLu
表示用差分算子hL代替微分算子L产生的误差
称之为(局部)截断误差。这里关于h的阶为 )(2hO。

注意()iiLufx
所以()()()ihiiRuLuxfx
由此知:(局部)截断误差可视为差分格式,将数值解换成相应真解值后,左端
减右端,再做Taylor展式获得的(可作为计算公式)。
方程的联立形式(中心差分格式)



0,01~1,20211Niiiiuu
nif

h

uuu

矩阵形式 bAU(其中 A 是三对角矩阵)
又因为A是三对称矩阵,而且符合追赶法的使用条件,故可用追赶法求解U的解。

三、主要程序代码或命令:
#include
#include
#define MAX 200 /*预定义数组大小*/
void main()
{ int n,i; /*初始化阶数n*/
float u[MAX],y[MAX];
float F[MAX],f[MAX],m[MAX];
float h,x; /*步长和剖分点*/
printf("请输入等分数n值:");
scanf("%d",&n); /*读入阶数*/
h=1/float(n);
m[1]=-0.5; /*使用追赶法求解系数矩阵三对称的线性方程组*/
for(i=2;i<=n-2;i++)
m[i]=-1/(2+m[i-1]);
for(i=1,x=h;x<1.0;x+=h,i++)
{F[i]=100*exp(-10*x);
f[i]=1-(1-exp(-10))*x-exp(-10*x); }
y[1]=F[1]/(2/(h*h));
for(i=2;i<=n-1;i++)
y[i]=(F[i]+(1/(h*h)*y[i-1]))/(2/(h*h)+(1/(h*h)*m[i-1]));
u[n-1]=y[n-1];
for(i=n-2;i>=1;i--)
u[i]=y[i]-m[i]*u[i+1];
for(i=1;i{ printf("请输出u[%d]的值:%f;",i,u[i]);
printf("——精确解为%f",f[i]);
printf("误差为%f",fabs(u[i]-f[i]));
printf("\n");}
}
四、调试和运行程序过程中产生的问题及采取的措施:
1.编译时出错,若想在主函数和被调用函数都使用一些变量,必须把这些变量设为全局变量。
2.编译时,没有注意数据类型转换,如float h;h=1/n;是错误的,因为n是整形的,当n
值大于1时,h老为零。应进行模式转换,h=1/float(n);这样才是正确的。
3.对浮点数求绝对值时,应使用fabs()函数,而不是abs()。
4.注意乘除的计算,不能直接写成2x等,必须加上符号,2*x。
五、运行输出结果及分析:
上述程序在Visual C++ 6.0环境下加以实现。经过多次测试,程序运行正确。例如:
分别输入n值:20 ,40,运行结果如图所示,图中显示了每一步的值及端点误差。

请输入等分数n值:20

输入n值:40
由图可知:
a.四种步长下无穷范数分别为:h=1/20时为e1=0.013742,h=1/40时为e2=0.003477,
h=1/80时为e3=0.000872,h=1/160时为e4=0.000218。计算可得差分解近似精确解在无穷
范数下误差阶数为二阶。(e=max{u[i]})
b.四种步长下L2范数分别为:h=1/20时为e1'=0.009277,h=1/40时为e2'=0.002342,
h=1/80时为e3'=0.000586,h=1/160时为e4'=0.000145。计算可得差分解近似精确解在L2

范数下误差阶数为二阶。(2/111)('2niiue)
通过这次课程设计:
1. 我又进一步巩固了C语言的基础。
2. 做课程设计达到了理论与实践结合的目的,提高了自己的编程能力。
3. 对数值分析里求解线性方程组的追赶法复习了一下,加深了理解。
4. 掌握中心差分格式的程序实现和分析算法误差的方法。

合集下载

向后差分法求解二位抛物方程的初边值问题

向后差分法求解二位抛物方程的初边值问题

向后差分法求解二位抛物方程的初边值问题下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!向后差分法求解二维抛物方程的初边值问题1. 引言在数值计算领域,求解偏微分方程(PDEs)是一项重要的任务。

两点边值问题方程

两点边值问题方程

两点边值问题方程两点边值问题是一种求解微分方程的方法,它涉及到两个边界条件。

假设我们有一个一阶常微分方程dy/dx = f(x,y),我们需要找到满足两个边界条件y(a) = alpha 和y(b) = beta 的解。

两点边值问题的解法通常包括以下步骤:1. 定义一个初始猜测值y0(x)。

2. 使用数值方法(如欧拉法、龙格-库塔法等)求解微分方程,得到新的解y1(x)。

3. 检查新的解是否满足边界条件。

如果满足,则找到了解;否则,返回步骤2,使用新的解作为初始猜测值继续求解。

下面是一个使用Python实现两点边值问题的示例代码:```pythonimport numpy as npfrom scipy.integrate import odeint# 定义微分方程dy/dx = f(x,y)def f(x, y):return x * y - 1# 定义两个边界条件y(a) = alpha 和y(b) = betaa, b, alpha, beta = 0, 1, 1, 0# 定义初始猜测值y0(x)y0 = np.array([0.5, 0.5])# 使用数值方法求解微分方程def solve_two_point_boundary_value_problem(f, a, b, alpha, beta, y0, tol=1e-6, max_iter=100): for i in range(max_iter):y = odeint(f, y0, [a, b])if np.allclose(y[:1], alpha) and np.allclose(y[-1], beta):return y[1:-1]y0 = y[1:-1]raise ValueError("Solution not found within the specified tolerance and maximum iterations.")# 求解两点边值问题solution = solve_two_point_boundary_value_problem(f, a, b, alpha, beta, y0)print("Solution:", solution)```在这个示例中,我们使用`odeint`函数求解微分方程,并使用`np.allclose`检查新的解是否满足边界条件。

一类p—Laplacian差分方程两点边值问题正解的存在性

一类p—Laplacian差分方程两点边值问题正解的存在性
划 项 目( 0 LI2 J8 5 )
作 者 简 介 : 明明 ( 9 9 ) 男 , 东 莒 南 人 , 读 硕 士 , 事 微 分 方 程 与 差 分 方 程 边 值 问 题 研 究 . 王 1 7一 , 山 在 从
8 把上式 从 1 s 到 进行 和运算 , 得
滨 州学 院学 报
事实 上 , () 由 1 得 .
( 3 )
△ (u£ 1) [ z ( 一 ) ]一一 f t“ £) S (, () .
收 稿 日期 : 0 8 g~ 8 2 0 一O 2
基金项 目: 国家 自然 科 学 基 金 资 助 项 目( 0 7 18 , 东 省 自然 科 学 基 金 资 助 项 目 ( 2 0 A0 ) 山 东 省 教 育 厅 科 技 计 17 11 ) 山 Y07 8,
f 。, ∈l T_ ]
I ()l令 E 一 { :o T+ 2 一 R l “ 0 “ , “[, ] △ ( )一 “ T+ 2 ( )一 0 , }
P一 { “∈ E: () 0 t [ , 2 , ()≥ ()【 l , “ £ ≥ , E 0 T4 ] “ £ - £ l } “l
把上 式从 t T+ 1 行和 运算 , 由( )即可得 到 到 进 再 2
1+ 1 _
( 一∑ ( fi ( ) £ ) ∑ (“ ) . , )
在本文 中, 义范 数 I l— 定 l “l 则 ( I1 E,l I . )为 B n c a ah空间.
定 义 锥 P:
m ax
王 明 明
(. 1 曲阜 师范 大学 数 学系 , 山东 曲阜 2 3 6 ; 7 1 5
2 滨州学 院 数学 与信息 科学 系 , . 山东 滨州 2 6 0 ) 5 6 3

一类两点边值问题的四次样条解法

一类两点边值问题的四次样条解法

其 中 , i , … , ,a, c,i i :Ol 一l i ,d, 均为 常数 。 , , e
假设

(, :y x) ( 1=y x . (, :m , ) ( , ) ( ) ) , ,
,= , (, ) ) , x+ =M, 。 + 。
( 3)
A p e te ai n o ua o ,20 ,181:5 — 3 pld i Mahm t s dC mp tin 0 7 8 ( ca t 1 86.
Qu rc s l e ou in r wo p it o n a yv le p o lms a t pi s s lt sf - on u d r a u r be i n o o t b
s lnef n to Th outo ft e b u da y v l e p o l m a e g i e r m h outo fti dig n lln a p i u c in. e s l in o o n r a u r b e c n b a n d fo t e s l in o — a o a i e r h r— e q to . ua ins And t i t o sea i rt a c a e Nume i a lusr to ss w ha h t d i hi pe sa h sme h d i se o c l ul t . rc lil ta i n ho t t e me ho n t spa rha t b te r cso ha to xitn n s et rp e iint n t fe si go e . ha
袭l上例 在号取 值时 方 已 方法的 火 不同 本文 法与 有 最 误差比 较
参考 文献

二阶Hammerstein型积分微分差分方程的两点边值问题

二阶Hammerstein型积分微分差分方程的两点边值问题

20 0 8年 2月
文章 编 号 :63 99 (0 8 0 —0 10 17 —5 0 20 ) 10 0 —5
二 阶 Ha mmes i 积 分微 分 rt n型 e 差 分 方 程 的两 点 边值 问题
金 丽 , 国灿 王
( 大连交通大 学 理 学院 , 宁 大连 16 2 ) 辽 10 8 摘 要: 利用微 分不等式技巧研究 了某一类二 阶 H m re a me tn型积分微 分差分方 程的两 点边值 问题 , si 在
K t ) 01 ( , 于[ ,]×[ ,] s 0 1 上连续非正 ,() o 1 上连续. t 于E ,]
收 稿 日期 :07 0 —2 2 0 —3 0
作者简 介 : 丽( 9 8一) 女 , 金 15 , 副教授 , 学士
E— ai: n g @ d n. m l wa g c kc
上下解存在的条件下 , 得到了解 的存在性和唯一性定 理. 果表 明 : 种技巧 为其它边 值 问题 的研究 提 结 这
出 了崭新的思路.
关键词 : 分微分 差分方程 ; 点边值问题 ; 积 两 微分不等式
中 图分 类 号 : 15 8 O 7 . 文 献 标 识码 : A
Two P i tBo n a y Vau r b e so e o d Or e m m e sen — o n u d r l eP o lm fS c n d rHa r ti
维普资讯
第2 9卷
第1 期
大 连 交 通 大 学 学 报
J OURNAL OF D I JAOT AL AN I ONG UN VE I Y I RS T
V 1 2 No 1 o. 9 . Fb 2 o e .0 8

偏微分方程的有限差分方法

偏微分方程的有限差分方法

二阶线性偏微分方程的一般形式为:
A 2 u B 2 u C 2 u D u E u F G u 0 x 1 2 x 1 x 2 x 2 2 x 1 x 2
对于变量 x1 和 x 2 给定的值 xˆ1 和 xˆ 2 若 4 A (x ˆ 1 ,x ˆ 2 ) C (x ˆ 1 ,x ˆ 2 ) B 2 (x ˆ 1 ,x ˆ 2 )
这里,[ u ] ij 表示 u(xi, yj )。上两式分别简记为
x p u x ijh 1 1 2x(pijx[u]i)jO (h1 2)
yp u yijh 12 2y(pij y[u]ij)O (h2 2)
则 L u x p u x y p u y q u f (x ,y ) 在 (i, j) 点被表示为
余弦是 (co,scos)。

u nij
u xijc
os u yijc
os
用单侧差商逼近 x方向和 y方向的导数,然后列
出边界网点上的差分方程。
(2)邻近边界的网格点 (xi , yj ) 不在上 可以采用直接转移法近似处理,即将边界
条件用于邻近边界的网格点,然后再在该点列 出差分方程。
2 用积分插值法构造差分格式 3 差分格式的稳定性和收敛性 4 差分方程求解的一些方法
— 数值积分 有限元法
— 函数插值
不同的数值微分和数值积分方法、不同的函数插值方 法,就产生了不同的有限差分法与不同的有限元法。
其它数学基础:
数理方程、数值代数、最优化理论与方法等
偏微分方程的有限差分方法
基本思想:使用离散的、只含有限个未知 数的差分方程去近似代替连续变量的微分方程 及边值条件,并将相应的差分方程解作为(初)边 值问题的近似解。

热传导两点边值问题的通用数值解法

热传导两点边值问题的通用数值解法热传导两点边值问题的通用数值解法:
1、首先,把待求解的区域分割成若干小区域,即对求解区域进行细分,这一过程叫做网格划分;
2、然后,将每一小区域进行离散,得到一系列离散点,这些离散点间
用一条线段连接,这条线段叫做节点,构成一种网格;
3、接着,对每个小区域采用有限元法,利用积分得到热流密度方程的
解析解,得到每个网格的节点的热功率;
4、之后,用Hotz定理,把大的热功率方程转化为一个矩阵形式的方程,并利用适当的迭代技术得到整个网格中每个节点附近的温度;
5、最后,计算从已知的两点的温度和到从每个节点的热功率,利用积
分方法求得求解区域的温度,从而得到最终的结果。

两点边值微分方程的有限元分析


三、实验原理、方法(算法)、步骤
实验一:
将方程化为标准形式:
d dx
u(a)
( p(x)
,
du ) dx
q( x)u
du dx
f ( x),
a x b,
(2) (3)
p(b)u
'(b)
u(b)
,
(4)
其中
p(x) 1,q(x) 1,f(x) sin(2 x),g(x) 1
a 0,b 1, 1, 0, 2 1 4 2
用心整理的精品 word 文档,下载即可编辑!!
数学与统计学院制
开课学院、实验室:
实验时间 : 2014 年 6 月 30 日
实验项 目
名称 指导教

偏微分方程期末课程设计 成绩
实验项目类型
验证 演示 综合 设计 其他
一. 实验目的
自学,掌握有限元分析的基本理论,并运用有限元分析的方法求解第二章的两 点边值问题,做出数值解,体会有限元和差分方法的不同之处。
(2) x = 1:
, for j = 1,..., M,
(3) y = 0:
, for i = 1,..., N,
(4) y = 1:
xi 1 )
sin(
xi1)cos(
xi1)
si
F (n ) -
xn sin(2
xn1
x)(x h
xn1
)dx
1
2 4
2
=
-2xn1cos(2
xn
)
+2cos(2
xn
) xn 4
+2sin( h2
xn1)cos(
xn1)-sin(2

差分法求解微分方程边界问题

差分法求解微分方程边界问题差分法求解微分方程边界问题微分方程边界问题广泛应用于物理、工程、天文、地球物理等领域,是解决实际问题的一种有效方法。

在数值计算中,常常使用差分法求解微分方程边界问题。

差分法是一种数值解微分方程的方法,它通过把连续微分方程近似离散化来对微分方程进行求解。

本文将介绍差分法求解微分方程边界问题的基本原理和方法。

一、差分法的基本原理差分法是一种将微分方程离散化求解的方法,其基本原理是通过数值近似来代替微分方程中的导数,将微分方程转化为一组离散的代数方程,然后通过求解代数方程组来得到微分方程的数值解。

差分法通过建立离散的数值网格来对微分方程进行离散化,然后使用逐步逼近的方法求解微分方程,这样就可以得到微分方程在网格上的近似解。

二、差分法求解微分方程边界问题的方法差分法求解微分方程边界问题的基本步骤如下:1、建立数值网格差分法求解微分方程边界问题需要建立数值网格,然后将微分方程在网格上进行离散化,得到离散的代数方程组。

数值网格包括坐标轴、网格线和格点。

坐标轴包括x轴和y轴,它们相互垂直,构成一个二维平面。

网格线是平行于坐标轴的线段,它们将平面划分成若干个小矩形。

格点是网格线的交点,它们将平面划分成若干个小正方形。

数值网格的大小和形状可以根据问题的要求进行设计。

2、离散化微分方程将微分方程在网格上进行离散化是差分法求解微分方程边界问题的关键步骤。

离散化将微分方程中的导数进行数值逼近,将微分方程转化为一组代数方程组,然后使用矩阵运算求解代数方程组,得到微分方程的数值解。

3、确定边界条件微分方程边界问题的边界条件通常包括Dirichlet边界条件、Neumann边界条件、Robin边界条件等。

Dirichlet边界条件指定了解的值在边界上的值,Neumann 边界条件指定了解的导数在边界上的值,Robin边界条件则指定了解和导数在边界上的组合值。

差分法求解微分方程边界问题需要根据问题的要求确定边界条件,并将边界条件转化为代数方程组。

有限元求解微分方程两点边值问题


元 ritz 方法法求解两点边值问题
从 Galerkin 法出发: 系数矩阵:
=
[hj
0 1 0
1
1
p(x j 1 hj ) hj q(x j 1 hj ) 2] d p(x j hj 1 ) hj 1q(x j hj 1 )(1 )2 ] d
使用有限元方法求解两点边值问题:
已知该问题的精确解为: 问题中 。

将区间分为 50 份,则步长为 从 Ritz 法出发 单元刚度矩阵: 其中:
,记为 。 记为 kesai。
总刚度矩阵:
使用 Matlab 定义刚度矩阵函数
其中
matlab 定义右端向量 b
在主文件中调用求解与精确解比较,并计算误差
[hj
1 1
=
[hj
0
1
1 1
p(x j hj 1 ) hj 1q(x j hj 1 ) (1 )] d
右端项:
a f jdx
b
hj f (x j 1 hj ) d hj 1 f (x j hj 1 ) (1 ) d
0 0
1
1
分析: 有限元 Galerkin 方法得到的解与精确解的误差在 左右,相
比 ritz 方法要大一点。 徐 磊 (1217010123) 完 成 Ritz 方 法 , 余 俊 桥 (1217010125) 完 成 Galerkin 方法,于通(1217010115)完成 Matlab 部分编程运算。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档