文档库 最新最全的文档下载
当前位置:文档库 › 第七章 十三 集合问题欧拉问题

第七章 十三 集合问题欧拉问题

第七章 十三 集合问题欧拉问题
第七章 十三 集合问题欧拉问题

293 十三 集合问题 容斥原理 欧 拉 问 题

1. 一个班有45个学生,都借了课外书,统计街课外书的情况是:全班借语文的有39人,借数学的有32人,同时借语文书和数学书的有多少人?

解:可以借助韦恩图来分析已知条件的关系。

已知

A ={借语文书的人}={39}

B ={借数学书的人}={32}

C ={只借语文书的人}

D ={只借数学书的人}

E ={语文数学书都借的人}

A ∪

B ={45}

求:A ∩B

A ∩

B =A +B -(A ∪B)

=(C +E)+(E +D)-(C +E +D)

=39+32-45

=26人

2. 某宣传队有45人会演唱有14人会乐器,有10人即会演唱又会乐器,没有一无所长的人,这个宣传队有多少人?

解:A ={会演唱的人}={45人}

B ={会乐器的人}={14人}

C ={只会演唱的人},

D ={只会乐器的人}

E =A ∩B ={即会演唱又会乐器的人}={10}

求:A ∪B

A ∪

B =A +B -A ∩B

=45+14-10

=49人

定理:1:B A =A +B -B A

证明:利用面积证明。

很明显,两个圆所占得面积等于两个圆得面积和减去两圆相交部分的面积。因为相交部分是重叠的。 定理2:C B A =A +B +C -B A -C B -A C +C B A 证明:文氏图分块标记如右图图:1245构成A ,2356

构成C ,4567构成B 。

三个圆为ABC 所占的总面积为A ∪B ∪C 。

A ∩

B +B ∩

C +C ∩A

=(图4+图5)+(图5+图6)+(图2+图5)

=图2+图4+图6+3个图5

A ∩

B ∩

C 为最中间面积即图5的面积。

圆A +圆B +圆C =(图1+图2+图5+图4)+

(图4+图5+图6+图7)+(图2+图5+图6+图

3

294 整个图形的面积A ∪B ∪C =图1+图2+图3+

图4+图5+图6+图7=圆A +圆B +圆C -(图4+图5)-(图5+图6)-(图2+图5)+图5= A +B +C - A ∩B - B ∩C - C ∩A +A ∩B ∩C 定理三:D C B A =A +B +C +D -B A -C A -D A -C B -D B -D C +C B A +D B A +D C B -D C B A

证明从略。

3. 一个学校有三门课程:数学、物理、化学。已知修这三门功课的学生分别有170,,130,120人;同时修数学、物理两门课程的有45人,同时修数学、化学的有20人;同时修物理、化学的有22人;同时修三门功课的有3人,问这学校共有多少人?

解:令A 为修数学课的学生集合;B 为修物理的学生集合;C 为修化学课的学生集合。 170=A ,130=B ,20=C ,45=B A

20=C A ,22=C B ,C B A =3

C B A =A +B +C -B A -C B -A C +C B A

=170+130+120—45—20—22+3=336人

答:全校有336人。 4. 求a ,b ,c ,d ,e ,f 这六个字母的全排列中,不允许出现abe 和df 图像的排列数。

解:设A 为abe 作为一个元素出现的排列集,B 为af 作为一个元素出现的排列集。 B A 为同时出现abe ,df 的排列集

∴ !4=A ,!5=B ,!3=B A

根据容斥原理,不允许出现abe 和df 图像的排列集为

582!3)!4!5(!6=++-=B A

5. 求从1到500的整数中被3或5除尽的个数。

解:令A 为从1到500的整数中被3除尽的数的集合,B 为从1到500的整数中被5除尽的数的集合。

1663500=??????=A ,1005500=??????=B 3315500=??

?

???=B A 被3或5除尽的数的个数为

B A =A +B -B A =166+100-33=233

295 因A N A -=,其中N 是集合U 的元素的个数,即不属于A 的元素个数等于集合的全体,去掉属于A 的元素的个数。

定理4. B A N B A -==B A B A N ++-)(

定理5.C B A N C B A -==N -(A +B +C )+B A +C B +A C -C B A 6. 一次期末考试,某班有15人数学得满分,有12人语文得满分,并且有4人语、数都是满分,那么这个班至少有一门得满分的同学有多少人?

解:由定理1得:15+12-4=23 7. 电视台向100人调查前一天收看电视的情况,有62人看过2频道,34人看过8频道,其中11人两个频道都看过。两个频道都没看过的有多少人?

解:由定理4得:100-(62+34-11)=15

8. 某校六⑴班有学生45人,每人在暑假里都参加体育训练队,其中参加足球队的有25人,参加排球队的有22人,参加游泳队的有24人,足球、排球都参加的有12人,足球、游泳都参加的有9人,排球、游泳都参加的有8人,问:三项都参加的有多少人?

已知:45=C B A ,25=A ,22=B ,24=C ,12=B A ,9=C B ,8=A C 求:?=C B A 解:∵C B A =A +B +C -B A -C B -A C +C B A

∴A C C B B A C B A C B A C B A +++---=

=45-25-22-24+12+9+8

=3人

9.分母是1001的最简分数一共有多少个?

分析:这一题实际上就是找分子中不能与1001进行约分的数。由于1001=7×11×13,所以就是找不能被7,11,13整除的数。

解答:1-1001中,有7的倍数1001/7 = 143 (个);有11的倍数1001/11 = 91 (个),有13的倍数1001/13 = 77 (个);有7×11=77的倍数1001/77 = 13 (个),有7×13=91的倍数1001/91 = 11 (个),有11×13=143的倍数1001/143 = 7 (个).有1001的倍数1个。

由容斥原理知:在1~1001中,能被7或11或13整除的数有(143+91+77)-(13+11+7)+1=281(个),从而不能被7、11或13整除的数有1001-281=720(个).也就是说,分母为1001的最简分数有720个。

10.某个班的全体学生在进行了短跑、游泳、投掷三个项目的测试后,有4名学生在这三个项目上都没有达到优秀,其余每人至少有一项达到了优秀,达到了优秀的这部分学生情况如下表:

296 求这个班的学生共有多少人?

分析:这个班的学生数,应包括达到优秀和没有达到优秀的。

4+17+18+15-6-6-5+2=39(人)

11. 一个班有42人,参加合唱队的有30人,参加美术组的有25人,有5人什么都没有参加,求两种都参加的有多少人? 解:∵B A B A B A -+=∴(30+25+5)-42=18人

12. 在一根木棍上有三种刻度线,第一种刻度线将木棍分成10等份,第二种将木棍分成12等份,第三种将木棍分成15等份。如果沿每条刻度线将木棍锯断,木棍总共被锯成多少段?

分析:很显然,要计算木棍被锯成多少段,只需要计算出木棍上共有多少条不同的刻度线,在此基础上加1就是段数了。

若按将木棍分成10等份的刻度线锯开,木棍有9条刻度线。在此木棍上加上将木棍分成12等份的11条刻度线,显然刻度线有重复的,如5/10和6/12都是1/2。同样再加上将木棍分成15等份的刻度线,也是如此。所以,我们应该按容斥原理的方法来解决此问题。用容斥原理的那一个呢?想一想,被计数的事物有那几类?每一类的元素个数是多少? 解答

解一:(10,12,15)=60,设木棍60厘米

60÷10=6厘米,60÷12=5厘米,60÷15=4厘米

10等分的为第一种刻度线,共10-1=9条

12等分的为第二种刻度线,共12-1=11条

15等分的为第三种刻度线,过15-1=14条

第一种与第二种刻度线重合的(6,5)=30,60÷30-1=2-1=1条

第一种与第三种刻度线重合的(6,4)=12,60÷12-1=5-1=4条

第二种与第三种刻度线重合的(5,4)=20,60÷20-1=3-1=2条

三种刻度线重合的没有,(6、5、4)=60

因此,共有刻度线9+11+14-1-4-2=27条,木棍总共被锯成27+1=28段。 解二:总长看成单位1分别分成10、12、15段。1/10与1/12的最小公倍数1/2,1/10与1/15的最小公倍数1/5,1/12与1/15的最小公倍数1/3,1/10,1/12和1/15的最小公倍数为1,有10+12+15-(2+5+3)+1=28

注:分数的的最大公约数和最小公倍数的求法,分母的最小公倍数作分母,分子的最大公约数作分子,这个数就是分数的最大公约数即[]()d b c a d c b a ,,,=??

????。 分母的最大公约数作分母,分子的最小公倍数作分子,这个数就是分数的最小公倍数即()[]

d b c a d c b a ,,,=??? ??。例如求3/4和25/18的最大公约数和最小公倍数数,∵[4,18]=36,(3,25)=1 ∴3/4和25/18的最大公约数是1/36。∵(4,18)=2,[3,25]=75,∴3/4和25/18的最小公倍数是75/2。 解三:

10、12、15的最小公倍数是60,假设木棍就是长60,

1、那么,分成10等份的每份6,刻度就是 短跑 游泳 投掷 短跑、游泳

短跑、投掷 游泳、投掷 短跑、游泳、投掷 17 18 15 6 6 5 2

297 0,6,12,18,24,30,36,42,48,54,60

2、分成12等分的每份就是5,

0,5,10,15,20,25,30,35,40,45,50,55,60

3、分成15等分的每份就是4,

0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60

4、把相同刻度的合并,就是有刻度如下:

0,4,5,6,8,10,12,15,16,18,20,24,25,28,30,32,35,36,40,42,44,45,48,50,52,54,55,56,60

13. 在1到1000的自然数中,能被3或5整除的数共有多少个?不能被3或5整除的数共有多少个?

分析:显然,这是一个重复计数问题(当然,如果不怕麻烦你可以分别去数3的倍数,5的倍数)。我们可以把“能被3或5整除的数”分别看成A 类元素和B 类元素,能“同时被3或5整除的数(15的倍数)”就是被重复计算的数,即“既是A 类又是B 类的元素”。求的是“A 类或B 类元素个数”。我们还不能直接计算,必须先求出所需条件。1000÷3=333……1,能被3整除的数有333个(想一想,这是为什么?)同理,可以求出其他的条件。

解:设A 是能被3整除的数,B 为能被5整除的数,则

33331000=??????=A ,20051000=??????=B ,66151000=??

????=B A B A B A B A -+==333+200-66=467,1000-467=533

欧 拉 问 题

欧拉的遗产问题:有一位父亲,临终前嘱咐他的儿子这样来分他的财产:第一个儿子分的100克郎和剩下财产的的101;第二个儿子分的200克郎和剩下财产的的10

1;第三个儿子分的300克郎和剩下财产的的

101;第四个儿子分的400克郎和剩下财产的的101;……;按这种分发一直分下去,最后每个儿子得到的一样多。问这位父亲共有几个儿子?每个儿子分得多少财产?这位父亲共留下多少财产?

解法一:设这位父亲共有n 个儿子,最后一个儿子为第n 个儿子,则倒数第二个就是第n -1个儿子。

第一个儿子分得的财产=100×

1+剩下的101,第二个儿子分得的财产=100×2+剩下的101,第三个儿子分得的财产=100×

3+剩下的101,……第n -1个儿子分得的财产=100×(n -1)+剩下的101,第n 个儿子分得的财产=100n

因为每个儿子所分得财产数相等,即 100(n -1)+剩余的101=100n 所以剩余财产的

298 101=100n —100(n -1)=100克郎。那么,剩余的财产为100÷101=1000克郎。

因为这1000的101就是100克郎给了第n -1个儿子,所以最后一个儿子分得1000—

100=900克郎,从而得出这位父亲有900÷100=9个儿子。共留下财产900×9=8100克郎

解法二:设这位父亲留下的的财产一共有n 克郎,则第一个儿子所得的财产为100+

101(n -100)剩n —[100+101(n -100)]=90109-n ;第二个儿子所得的财产为 ??????--+20090109101200n =1711009+n 剩261100

81171100990109-=??????+--n n n 第三个儿子所得的财产为??????--+

30026110081101300n =9.243100081+n 剩9.50410007299.24310008126110081-=??

????+--n n n 因为每个儿子所得的财产同样多,所以 1711009)100(101100+=-+

n n , 811001=n ,n =8100 每个儿子分得的财产为 900)1008100(10

1100=-+克郎,这位父亲共有8100÷900=9个儿子 解法三:从第一个儿子分得100克郎和剩余的

101,第二个儿子分得200克郎和剩余的101,得第一个剩下的101和第二个剩下的10

1,相差200—100=100克郎,所以,第一个剩下的财产和第二个剩下的财产相差100÷

101=1000克郎,每个儿子分到1000—200+100=900克郎,这位父亲留下的财产为810020010

1)2001000(=+÷

-克郎,共有8100÷900=9个儿子。

Euler方法与改进的Euler方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

Euler 方法与改进的Euler 方法的应用 一、问题背景 在工程和科学技术的实际问题中,常需求解微分方程,但常微分方程中往往 只有少数较简单和典型的常微分方程(例如线性常系数常微分方程等)可求出其 解析解,对于变系数常微分方程的解析求解就比较困难,而一般的非线性常微分方 程的求解困难就更不用说了。大多数情况下,常微分方程只能用近似方法求解。 这种近似解法可分为两大类:一类是近似解析法,如级数解法、逐次逼近法等;另 一类是数值解法,它给出方程在一些离散点上的近似值。 二、数学模型 在具体求解微分方程时,需具备某种定解条件,微分方程和定解条件合在一 起组成定解问题。定解条件有两种:一种是给出积分曲线在初始点的状态,称为 初始条件,相应的定解问题称为初值问题。另一类是给出积分曲线首尾两端的状 态,称为边界条件,相应的定解问题称为边值问题。在本文中主要讨论的是给定 初值条件的简单Euler 方法和改进的Euler 方法来求解常微分方程。 三、算法及流程 Euler 方法是最简单的一种显式单步法。对于方程 ()y x f dx dy ,= 考虑用差商代替导数进行计算,取离散化点列 nh x x n +=0,L n ,2,1,0= 则得到方程的近似式 ()()()()n n n n x y x f h x y x y ,1≈-+ 即 ()n n n n y x hf y y ,1+=+ 得到简单Euler 方法。具体计算时由0x 出发,根据初值,逐步递推二得到系列离 散数值。 简单Euler 方法计算量小,然而精度却不高,因而我们可以构造梯形公式 ()()[]η=++ =+++0111,,2 y y t f y t f h y y n n n n n n 其中()N a b h -=。这是一个二阶方法,比Euler 方法精度高。但是上述公式右边 有1+n y ,因而是隐式差分方程,可以用迭代方法计算1+n y 。初值可以由Euler 公式

初值问题

《计算机数学基础(2)》辅导六 第14章常微分方程的数值解法 一、重点内容 1.欧拉公式: (k=0,1,2,…,n-1) 局部截断误差是O(h2)。 2. 改进欧拉公式: 或表示成: 平均形式: 局部截断误差是O(h3)。 3. 四阶龙格――库塔法公式: 其中κ1=f(x k,y k);κ2=f(x k+ 0.5h,y k+ 0.5 hκ1);κ3=f(x k+ 0.5 h,y k+ 0.5 hκ2); κ4=f(x k+h,y k+hκ3) 局部截断误差是O(h5)。

二、实例 例1用欧拉法解初值问题 取步长h=0.2。计算过程保留4位小数。 解h=0.2,f(x,y)=-y-xy2。首先建立欧拉迭代格式 =0.2y k(4-x k y k) (k=0,1,2) 当k=0,x1=0.2时,已知x0=0,y0=1,有 y(0.2)≈y1=0.2×1(4-0×1)=0.8 当k=1,x2=0.4时,已知x1=0.2,y1=0.8,有 y(0.4)≈y2=0.2×0.8×(4-0.2×0.8)=0.6144 当k=2,x3=0.6时,已知x2=0.4,y2=0.6144,有 y(0.6)≈y3=0.2×0.6144×(4-0.4×0.6144)=0.4613 例2 用欧拉预报-校正公式求解初值问题 取步长h=0.2,计算y(1.2),y(1.4)的近似值,小数点后至少保留5位。 解步长h=0.2,此时f(x,y)=-y-y2sin x 欧拉预报-校正公式为: 有迭代格式:

当k=0,x0=1,y0=1时,x1=1.2,有 =y0(0.8-0.2y0sin x0)=1×(0.8-0.2×1sin1)=0.63171 y(1.2)≈y1 =1×(0.9-0.1×1×sin1)-0.1(0.63171+0.631712sin1.2)=0.71549 当k=1,x1=1.2,y1=0.71549时,x2=1.4,有 =y1(0.8-0.2y1sin x1)=0.71549×(0.8-0.2×0.71549sin1.2) =0.47697 y(1.4)≈y2 =0.71549×(0.9-0.1×0.71549×sin1.2) -0.1(0.47697+0.476972sin1.4) =0.52611 例3写出用四阶龙格――库塔法求解初值问题 的计算公式,取步长h=0.2计算y(0.4)的近似值。至少保留四位小数。 解此处f(x,y)=8-3y,四阶龙格――库塔法公式为 其中κ1=f(x k,y k);κ2=f(x k+ 0.5h,y k+ 0.5 hκ1);κ3=f(x k+ 0.5 h,y k+ 0.5 hκ2);

常微分方程作业欧拉法与改进欧拉法

P77 31.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:dy + =t = t y y ≤ ≤ ,2 ;5.0 0,3 )0( )1(= ,1 ? dt 代码: %改进欧拉法 function Euler(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y+1; 调用:Euler(0,3,[0,2],0.5) 得到解析解:hold on; y=dsolve('Dy=y+1','(y(0)=3)','t'); ezplot(y,[0,2]) 图像:

dy y =t - t y ;2.0 t = ≤ )0( 0,5.0 ,4 )2(2= ≤ ? ,2 dt 代码: function Euler1(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y^2-4*t; 调用: Euler1(0,0.5,[0,2],0.2) 图像:

任意拉格朗日欧拉(ALE)理论基础

暨两岸船舶与海洋工程水动力学研讨会文集 拉格朗日、欧拉和任意拉格朗日-欧拉描述的 有限元分析 孙江龙1杨文玉2 杨侠3 (1 华中科技大学船舶与海洋工程学院,武汉 430074;2 华中科技大学机械科学与工程学院,武汉 430074;3 武 汉工程大学机电工程学院,武汉 430073) 摘要:对拉格朗日、欧拉和任意拉格朗日–欧拉三种描述方法进行了分析,为了便于理解给出了三种描述的参考构形和参考坐标系,在参考坐标系下根据物质导数的定义分别得到相应的速度和加速度,并进行比较,将三种描述方法的区别列于表中,清晰地阐述了三种描述之间的相互关系,并进行了有限元分析。 关键词:拉格朗日;欧拉;任意拉格朗日–欧拉;有限元法 1 引言 自由液面大晃动引起的强非线性往往给问题的求解造成很大困难,对大晃动问题进行数值模拟,要先解决描述方法的选择问题。过去通常采用欧拉法[1-3]和拉格朗日法[4-5]来描述非定常自由面流体流动,它们有着各自的优势和局限性。 采用固定网格的欧拉描述,整个计算过程中计算网格始终保持初始状态,从而可以描述流体质点运动的急剧变化,如碎波等现象。欧拉描述虽然可以有效地分析整个流场内部的运动,但很难精确跟踪流体的自由液面,即很难给出准确的自由面形状和位置。 在拉格朗日描述中,网格结点与流体质点在整个运动过程中始终保持重合,流体质点与网格结点之间不存在相对运动,因此很容易跟踪自由液面,适用于线性小晃动问题。这不仅大大地简化了控制方程地求解,而且还能有效地跟踪流体质点的运动轨迹,准确地描述波动的自由液面。但是,在涉及求解带自由面流体大幅运动时,此时的晃动已经具有很强的非线性特征,如果还采用拉格朗日描述,由于流体质点运动的急剧变化,将导致计算网格的扭曲,会面临网格奇异问题,从而使计算无法继续进行。 拉格朗日描述和欧拉描述虽有各自的优点,但也存在较大的缺陷,如果将它们有机地结合在一起,充分利用各自的优点并克服其缺点,则可以解决各自都难于解决的问题,任意拉格朗日–欧拉描述[6-7](ALE)方法就是基于该思路提出的。在任意拉格朗日–欧拉描述中,网格结点的运动方式比较灵活,网格结点可以跟随流体质点一起运动,也可以固定不变,甚至可以采用网格结点在一个方向上固定而在其他方向上随流体质点一起运动等方式。为了更加清晰地理解这三种描述方法,本研究从以下几个方面进行阐述和比较。 - 164 -

欧拉法matlab程序

法 function [x,y]=naeuler(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler(dyfun,[0,1],1,;[x,y] ans = 2.隐式Euler法 function [x,y]=naeulerb(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=iter(dyfun,x(n+1),y(n),h); end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) function y=iter(dyfun,x,y,h) y0=y;e=1e-4;K=1e+4; y=y+h*feval(dyfun,x,y); y1=y+2*e;k=1; while abs(y-y1)>e y1=y; y=y0+h*feval(dyfun,x,y); k=k+1; if k>K error('迭代发散'); end end >> dyfun=inline('y-2*x/y');

[x,y]=naeulerb(dyfun,[0,1],1,;[x,y] ans = 3.改进Euler法 function [x,y]=naeuler2(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; k2=feval(dyfun,x(n+1),y(n+1)); y(n+1)=y(n)+h*(k1+k2)/2; end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler2(dyfun,[0,1],1,;[x,y] ans =

欧拉及改进的欧拉法求解常微分方程

生物信息技术0801 徐聪U200812594 #include #include void f1(double *y,double *x,double *yy) { y[0]=2.0; x[0]=0.0; yy[0]=2.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y[i]=y[i-1]+0.2*(y[i-1]-x[i-1]); yy[i]=x[i]+1+exp(x[i]); printf("若x=%f,计算值是%f,真实值是%f,截断误差是%f\n ",x[i],y[i],yy[i],y[i]-yy[i]); } }; void f2(double *y,double *x,double *yy) { y[0]=1.0; x[0]=0.0; yy[0]=1.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y[i]=y[i-1]+0.2*(2*y[i-1]+x[i-1]*x[i-1]); yy[i]=-0.5*(x[i]*x[i]+x[i]+0.5)+1.25*exp(2*x[i]); printf("若x=%f,计算值是%f,真实值是%f,截断误差是%f\n ",x[i],y[i],yy[i],y[i]-yy[i]); } }; void f3(double *y,double *x,double *yy,double *y0) { y[0]=2.0; x[0]=0.0; yy[0]=2.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y0[i]=y[i-1]+0.2*(y[i-1]-x[i-1]); y[i]=y[i-1]+0.1*(y[i-1]-x[i-1]+y0[i-1]-x[i-1]);

实验8欧拉法_改进欧拉法_线性多步法

西华数学与计算机学院上机实践报告 课程名称:计算方法A 年级:2010级 上机实践成绩: 指导教师:严常龙 姓名:李国强 上机实践名称:解常微分方程初值问题 学号:362011********* 上机实践日期:2013.12.25 上机实践编号:8 上机实践时间:14:00 一、目的 1.通过本实验加深对欧拉法、改进欧拉法、线性多步法的构造过程的理解; 2.能对上述四种方法提出正确的算法描述编程实现,观察计算结果的改善情况。 二、内容与设计思想 自选常微分方程的初值问题,分别用欧拉法、改进欧拉法求解。 分别用以上两种方法求解常微分方程初值问题: 2 '()1,([0.0,1.4],0.1)(0)0.0 y x y h y ?=+=?=?求解区间取步长 三、使用环境 操作系统:Win 8 软件平台:Visual C++ 6.0 四、核心代码及调试过程 #include #include #define f(y) (y*y+1) #define m 0.0//初值为0 #define h 0.1//步长为0.1 #define n 14//迭代次数为14 #define a 0.0//定义区间长度 #define d 1.4 void gjol();//改进欧拉法 void ol();//欧拉法 main() { ol(); printf("\n"); gjol(); } void gjol() {

int i; float y[n+1]; y[0]=m;//赋初值 printf("改进欧拉法\n"); for(i=0;i

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法. 2.龙格-库塔法。 3.单步法的收敛性与稳定性。 重点、难点 一、微分方程的数值解法 在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。本章我们主要 讨论常微分方程初值问题?????==00 )() ,(y x y y x f dx dy 的数值解法。 数值解法的基本思想是:在常微分方程初值问题解的存在区间[a,b]内,取n+1个节点a=x 0<x 1<…<x N =b (其中差h n = x n –x n-1称为步长,一般取h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。 二、欧拉法与改进欧拉法 欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。 将常微分方程),(y x f y ='变为() *+=?++1 1))(,()()(n x n x n n dt t y t f x y x y 1.欧拉法(欧拉折线法) 欧拉法是求解常微分方程初值问题的一种最简单的数值解法。 欧拉法的基本思想:用左矩阵公式计算(*)式右端积分,则得欧拉法的计算公式为:N a b h N n y x hf y y n n n n -= -=+=+)1,...,1,0(),(1 欧拉法局部截断误差 11121 )(2 ++++≤≤''=n n n n n x x y h R ξξ或简记为O (h 2)。

数值计算上机第七题关于改进欧拉方法

7. 取h =0.2,用改进欧拉方法求解下列初值问题。 '(0)5 y y ì?í?=?020x #) 第七题: #include "fstream.h" #include "math.h" int main() { double x0,x1,y0,yp,yc,h; ifstream infile("in.dat"); ofstream outfile("out.dat"); infile>>x0>>x1>>h>>y0;//依次输入x 的初值x0,x 的终值x1,步长h ,y (0)的值y0 outfile<

0 5 0.2 7.03239 0.4 9.89185 0.6 13.9148 0.8 19.5739 1 27.5337 1. 2 38.7287 1.4 54.4735 1.6 76.6169 1.8 107.759 2 151.558 2.2 213.156 2.4 299.787 2.6 421.626 2.8 592.981 3 833.977 3.2 1172.91 3. 4 1649.6 3.6 2320.01 3.8 3262.89 4 4588.97 4.2 6453.97 4.4 9076.93 4.6 12765.9 4.8 17954.1 5 25250.8 5.2 35513 5.4 49945.8 5. 6 70244.3 5.8 98792.3

常微分方程初值问题数值解法

常微分方程初值问题数值解法 朱欲辉 (浙江海洋学院数理信息学院, 浙江舟山316004) [摘要]:在常微分方程的课程中讨论的都是对一些典型方程求解析解的方法.然而在生产实际和科学研究中所遇到的问题往往很复杂, 在很多情况下都不可能给出解的解析表达式. 本篇文章详细介绍了常微分方程初值问题的一些数值方法, 导出了若干种数值方法, 如Euler法、改进的Euler法、Runge-Kutta法以及线性多步法中的Adams显隐式公式和预测校正公式, 并且对其稳定性及收敛性作了理论分析. 最后给出了数值例子, 分别用不同的方法计算出近似解, 从得出的结果对比各种方法的优缺点. [关键词]:常微分方程;初值问题; 数值方法; 收敛性; 稳定性; 误差估计 Numerical Method for Initial-Value Problems Zhu Yuhui (School of Mathematics, Physics, and Information Science, Zhejiang Ocean University, Zhoushan, Zhejiang 316004) [Abstract]:In the course about ordinary differential equations, the methods for analytic solutions of some typical equations are often discussed. However, in scientific research, the problems are very complex and the analytic solutions about these problems can’t be e xpressed explicitly. In this paper, some numerical methods for the initial-value problems are introduced. these methods include Euler method, improved Euler method, Runge-Kutta method and some linear multistep method (e.g. Adams formula and predicted-corrected formula). The stability and convergence about the methods are presented. Some numerical examples are give to demonstrate the effectiveness and accuracy of theoretical analysis. [Keywords]:Ordinary differential equation; Initial-value problem; Numerical method; Convergence; Stability;Error estimate

Euler方法及其改进方法

《常微分方程》课内实验任务书 学生姓名:张学阳1009300132 及学号: 学院:理学院 班级:数学101 课程名称:常微分方程 题目:Euler方法及其改进方法 指导教师 李鹏松教授 姓名及职称: 朱秀丽讲师 方向实验师 2012年10月17日

《常微分方程》课内实验 实验一 Euler 方法及其改进方法 一、实验目的 1.通过用Matlab 编程运用Euler 方法及其改进方法求解常微分方程初值问题,更进一步掌握常微分方程及其数值解法课程的理论内容,加深对数值解法的理解。 2.熟悉Matlab 编程环境。 二、实验学时和类型 本次实验为2学时、设计性实验。 三、实验内容 1.实验题目 运用Euler 方法及其改进方法求解常微分方程初值问题,具体问题在课内实验习题中学生任意抽取。 2.实验原理 Euler 方法:???+==+) ,()(100n n n n y x hf y y x y y Euler 改进方法:[]?? ? ??++==+++),(),(2)(11100n n n n n n y x f y x f h y y x y y 3.设计思想 在能够获得精确解的题目抽取题目,分别应用Euler 方法、Euler 改进方法求解数值结果,将所得结果列表或者画图,参照精确结果,对Euler 方法、Euler 改进方法的计算误差进行分析。 4.参考程序源代码 %fun 为目标函数字符串 %x0为自变量初始值。 %y0为fun(x0); %bou=[a,b]自变量区间 %h 为步长 fun='1/x^2-y^2';

bou=[1,6]; a=bou(1); b=bou(2); x0=1; y0=0; h=0.1; n=ceil((b-a)/h); xx=linspace(a,b,n+1)'; yy=zeros(1,n+1)'; lengthx=length(xx); xx(1)=x0;yy(1)=y0; for i=2:n+1 x=xx(i-1);y=yy(i-1); k=eval(fun); yy(i)=yy(i-1)+h*k; end Ys=dsolve('Dy=1/x^2-y^2','y(1)=0','x'); for i=1:lengthx x=xx(i); exacty(i)=eval(Ys); end YY=exacty'; yend=[xx,yy,YY] p=plot(xx,yend(:,2),'k-o','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',4); hold on; pp=plot(xx,yend(:,3),'r-.+','LineWidth',0.8,... 'MarkerEdgeColor','r',... 'MarkerFaceColor','m',... 'MarkerSize',6); legend([p,pp],'Eula','jiequejie'); %fun为目标函数字符串 %x0为自变量初始值。 %y0为fun(x0); %bou=[a,b]自变量区间 %h为步长 fun='1/x^2-y^2'; bou=[1,6]; a=bou(1); b=bou(2); x0=1; y0=0;

全欧拉法流固耦合问题

摘要 在这项工作中,我们提出一个关于流固耦合的一个完全欧拉结构(FSI)问题即耦合不可压缩Navier-Stokes超弹性固体方程。完全欧拉结构是一个单一变量结构耦合问题。与此相反的任意拉格朗日欧拉(ALE)坐标也是行之有效的,但是完全欧拉结构,包含两个子问题,液体和固体问题。在欧拉坐标,这个概念绕过与ALE各种困难坐标的联系,因为没有其他人的领域成果可以使用,所以该结构是一种首创全新的方法。本方法主要研究该固体的变形,它作为一种固体变形研究的的扩展,建立在初始点的设置,以此检测连接点的位置。由于涉及到大变形,所以本文尽可能的利用了像固体接触边界的变化或其他固体领域的研究。1介绍 我们为流固耦合问题提供了一种完全统一的可变有限单元法。重点强调于大变形结构领域的应用,处于流域和该流域边界接触的结构的自由运动,和其他自接触结构的应用。这项工作中出现的方程是Eulerian-Eulerian型的,并且这种奇特的方法第一次出现是由Dunne引入的[14,15]。 现在有数不清的不同方法来建模和模拟流固耦合问题。在这些方法中我们专注于单片模型,这种模型整个问题被描述为一种包含固体和流体表面的双系统。单片模型允许含糊的描述方案,大的时间步长并且提供使用基于错误假设的可能和最优化方法。他们已经很好的适用于大流体密度问题中如血液动力学。当流体问题被本质的描述为一种混合欧拉或朗格朗日的结构,材料的描述通常是固体问题的基础。所有的描述流固耦合问题的单片模型不管怎么样都要符合这两种结构。 在拉格朗日法或专一的拉格朗日法中,流体问题被定位于一种涉及域的匹配的位置。经典的方法是ALE法,见[29.4.35]或变空间域/稳态空间法(DSD/SST),见实例[53,51]。这些方程有相同之处,运动学和动力学结合很容易嵌入路径空间并有多种技术支持。拉格朗日法的缺点是流体问题的转化可在大变形或大的固体运动中破坏。 欧拉-拉格朗日法为解决流体问题使用一种欧拉混合计算单元,为解决固体 问题使用朗格朗日单元。通过使用力密度法结合这两种结构的应用于大边界[43]或大表面[39]。其它介绍的方法在于额外的表面不同。这些例子都是虚构的域法,其他最近的方法都是基于扩展有限单元法的。表面混合法的调查由Felippa[17] 给出。欧拉-拉格朗日法是一种表面捕捉的方法。这种表面不是修复的欧拉单元

1求解初值问题欧拉法的局部截断误差是((精)

1.求解初值问题???=='0 0y x y y x f y )(),(欧拉法的局部截断误差是( ); 改进欧拉法的局部截断 误差是( ); 四阶龙格-库塔法的局部截断误差是( ) (A)O (h 2) (B)O (h 3) (C)O (h 4) (D)O (h 5) 2. 改进欧拉预报-校正公式是 ?????2+=+=1+1+][h y y y y k k k k 校正值预报值 改进欧拉法平均形式公式为y p = , y c = ,y k +1= 试说明它们是同一个公式。 3. 设四阶龙格-库塔法公式为 )22(643211κκκκ++++=+h y y k k 其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +2 1h κ2);κ4=f (x k +h ,y k +h κ3) 取步长h =0.3,用四阶龙格-库塔法求解初值问题? ??0=0-1=')(y y y 的计算公式是 。 4.取步长h =0.1, 用欧拉法求解初值问题?????1 =01≤≤021=')()(y x xy y 5. 试写出用欧拉预报-校正公式求解初值问题? ??1=00=+')(y y y 的计算公式,并取步长h =0.1,求y (0.2)的近似值。要求迭代误差不超过10-5。 6. 对于初值问题???1 =0='2 )(y xy y 试用(1)欧拉法;(2)欧拉预报-校正公式;(3)四阶龙格-库 塔法分别计算y (0.2),y (0.4)的近似值。 7. 用平均形式改进欧拉法公式求解初值问题?? ?0 =0=+')(y x y y 在x =0.2,0.4,0.6处的近似值。 8. 证明求解初值问题的梯形公式是 y k +1=y k +)],(),([2 11+++k k k k y x f y x f h , h =x k +1-x k (k =0,1,2,…,n -1),

用改进的欧拉方法和四阶龙格-库塔方法解初值问题

用改进的欧拉方法和四阶龙格-库塔方法解初值问题 一、题目: 取步长2.0=h ,分别用改进的欧拉方法和四阶龙格—库塔方法解初值问题 ? ??=≤≤+=.1)0(;10,'y x y x y 并比较结果。 二、基本思想: 1.改进的欧拉方法 改进的欧拉方法用梯形公式计算()()()()+1+1-=,.n n x n n x y x y x f x y x dx ?中的积分,并以 n y 和+1n y 分别表示()n y x 和()+1n y x 的近似值,就得到 ()()()+1+1+1=+,+,.2 n n n n n n h y y f x y f x y (梯形公式) 梯形公式也是一个一步法公式。由于公式右端也含有未知的+1n y ,故被称作是隐式的。隐式格式实际上是关于+1n y 的一个函数方程。为了避免解方程,可以采用欧拉方法计算初始值,再由梯形公式计算。这样建立起来的计算格式称为改进的欧拉格式: ()()()()+1+1+1=+,,=+,+,.2 p n n n n n n n n n y y hf x y h y y f x y f x y ????? 梯形公式也可以采用迭代法求解。如果仍然采用欧拉方法计算迭代初值,那么计算格式就是 []()[]()[]()() 0+1+1+1+1+1=+,,=+,+,.2n n n n k k n n n n n n y y hf x y h y y f x y f x y ????? 由于已假定(),f x y 满足里普希兹条件,所以有 [][][]()[]() [][]+1-1-1+1+1+1,+1+1+1+1+1-=-,-.22 k k k k k k n n n n n n n n h hL y y f x y f x y y y ≤ 从而,迭代的收敛条件是0<<1.2hL 2.四阶龙格-库塔方法 龙格—库塔方法不是用求导数的办法,而是用计算不同点上()y x f ,的函数值,然后对这些函数值作线性拟合,构造近似公式。组合的原则是使得近似公式与泰勒展开式有尽可能多的项吻合,以达到较高的精度。 改进的欧拉格式

Euler方法解初值问题

Euler方法解初值问题编程

一、题目 用Euler 方法解初值问题: y'=-2xy y(0)=0 (0≤x ≤1.8) 取步长h=0.1,问题的精确解为2 x e y -=.求初值问题数值解,估计误差,并将计算结果与精确解作比较(列表、作图). 二、程序 1.M-文件 Euler.m x=0;n=0;y=1; h=0.1; x_(1)=x;y_(1)=y; y_exact(1)=exp(-x_(n+1)^2); error_(n+1)=abs(y_exact(1)-y); fprintf('x_(i) y_(i) y_exact(i) error_(i)\n') fprintf(' %2.1f %8.4f %8.4f %8.4f\n', x_(1),y_(1),y_exact(1),error_(1)) while x<=1.8 n=n+1; y=y+h*((-2)*x*y); x=x+h;

y_(n+1)=y; x_(n+1)=x; y_exact(n+1)=exp(-x_(n+1)^2); error_(n+1)=abs(y_exact(n+1)-y); fprintf(' %2.1f %8.4f %8.4 %8.4f\n', x_(n+1),y_(n+1),y_exact(n+1),error_(n+1)) end plot(x_,y_,'ro',x_,y_exact,'b*') 2.matlab命令窗口输入 >> Euler 3.结果 (1)表 x_(i) y_(i) y_exact(i) error_(i) 0.0 1.0000 1.0000 0.0000 0.1 1.0000 0.9900 0.0100 0.2 0.9800 0.9608 0.0192 0.3 0.9408 0.9139 0.0269 0.4 0.8844 0.8521 0.0322 0.5 0.8136 0.7788 0.0348 0.6 0.7322 0.6977 0.0346 0.7 0.6444 0.6126 0.0317 0.8 0.5542 0.5273 0.0269

拉格朗日方程

拉格朗日方程 约瑟夫·拉格朗日(Joseph Louis Lagrange),法国数学家、物理学家。他在数学、力学和天文学三个学科领域中都有历史性的贡献,其中尤以数学方面的成就最为突出。 拉格朗日公式(lagrange formula)包括拉格朗日方程、拉格朗日插值公式、拉格朗日中值定理等。 中文名 拉格朗日公式 外文名 lagrange formula 涉及领域 信息科学、数学 发现者 约瑟夫·拉格朗日 发现者职业 法国数学家,物理学家 包括 拉格朗日方程等 目录 .1拉格朗日 .?生平 .?科学成就 .2拉格朗日方程

.?简介 .?应用 .3插值公式 .4中值定理 .?定律定义 .?验证推导 .?定理推广 拉格朗日 约瑟夫·拉格朗日(Joseph Louis Lagrange),法国数学家、物理学家。他在数学、力学和天文学三个学科领域中都有历史性的贡献,其中尤以数学方面的成就最为突出。 生平 拉格朗日1736年1月25日生于意大利西北部的都灵。父亲是法国陆军骑兵里的一名军官,后由于经商破产,家道中落。据拉格朗日本人回忆,如果幼年是家境富裕,他也就不会作数学研究了,因为父亲一心想把他培养成为一名律师。拉格朗日个人却对法律毫无兴趣。 到了青年时代,在数学家雷维里的教导下,拉格朗日喜爱上了几何学。17岁时,他读了英国天文学家哈雷的介绍牛顿微积分成就的短文《论分析方法的优点》后,感觉到“分析才是自己最热爱的学科”,从此他迷上了数学分析,开始专攻当时迅速发展的数学分析。 18岁时,拉格朗日用意大利语写了第一篇论文,是用牛顿二项式定理处理两函数乘积的高阶微商,他又将论文用拉丁语写出寄给了当时在柏林科学院任职的数学家欧拉。不久后,他获知这一成果早在半个世纪前就被莱布尼兹取得了。这个并不幸运的开端并未使拉格朗日灰心,相反,更坚定了他投身数学分析领域的信心。 1755年拉格朗日19岁时,在探讨数学难题“等周问题”的过程中,他以欧拉的思路和结果为依据,用纯分析的方法求变分极值。第一篇论文“极大和极小的方法研究”,发展了欧拉所开创的变分法,为变分法奠定了理论基础。变分法的创立,使拉格朗日在都灵声名大震,并使他在19岁时就当上了都灵皇家炮兵学校的教授,成为当时欧洲公认的第一流数学家。1756年,受欧拉的举荐,拉格朗日被任命为普鲁士科学院通讯院士。 1764年,法国科学院悬赏征文,要求用万有引力解释月球天平动问题,他的研究获奖。接着又成功地运用微分方程理论和近似解法研究了科学院提出的一个复杂的六体问题(木星的四个卫星的运动问题),为此又一次于1766年获奖。

改进欧拉(c语言程序)

1)改进欧拉法求解常微分方程的初值问题 #include float func(float x,float y) { return(y-x); } float euler(float x0,float xn,float y0,int N) { float x,y,yp,yc,h; int i; x=x0; y=y0; h=(xn-x0)/(float)N; for(i=1;i<=N;i++) { yp=y+h*func(x,y); x=x0+i*h; yc=y+h*func(x,yp); y=(yp+yc)/2.0; } return(y); } main() { float x0,xn,y0,e; int n; printf("\ninput n:\n "); scanf("%d",&n); printf("input x0,xn:\n "); scanf("%f,%f",&x0,&xn); printf("input y0:\n "); scanf("%f",&y0); e=euler(x0,xn,y0,n); printf("y(%f)=%6.4f",y0,e); } input n: 20 input x0,xn: 1,6 input y0: 2 y(2.000000)=7.0000Press any key to continue (2)四阶龙格—库塔法

#include float func(float x,float y) { return(x-y); } float runge_kutta(float x0,float xn,float y0,int N) { float x,y,y1,y2,h,xh; float d1,d2,d3,d4; int i; x=x0; y=y0; h=(xn-x0)/(float)N; for(i=1;i<=N;i++) { xh=x+h/2; d1=func(x,y); d2=func(xh,y+h*d1/2.0); d3=func(xh,y+h*d2/2.0); d4=func(xh,y+h*d3); y=y+h*(d1+2*d2+2*d3+d4)/6.0; x=x0+i*h; } return(y); } main() { float x0,xn,y0,e; int N; printf("\ninput n:\n "); scanf("%d",&N); printf("input x0,xn:\n "); scanf("%f,%f",&x0,&xn); printf("input y0:\n "); scanf("%f",&y0); e=runge_kutta(x0,xn,y0,N); printf("y(%f)=%8.6f",y0,e); } input n: 10 input x0,xn: 1,2 input y0: 5 y(5.000000)=2.833863Press any key to continue

欧拉方程

欧拉方程 (刚体运动) 莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向。对于任何一个参考系,一个刚体的取向,是依照顺序,从这参考系,做三个欧拉角的旋转而设定的。所以,刚体的取向可以用三个基本旋转矩阵来决定。换句话说,任何关于刚体旋转的旋转矩阵是由三个基本旋转矩阵复合而成的。 静态的定义 三个欧拉角:() 。蓝色的轴是xyz-轴,红色的轴是XYZ-坐标轴。绿色的线是交点线(N) 。 对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。参考系又称为实验室参考系,是静止不动的。而坐标系则固定于刚体,随着刚体的旋转而旋转。 参阅右图。设定 xyz-轴为参考系的参考轴。称 xy-平面与 XY-平面的相交为交点线,用英文字母(N)代表。zxz 顺规的欧拉角可以静态地这样定义: ?α是x-轴与交点线的夹角, ?β是z-轴与Z-轴的夹角, ?γ是交点线与X-轴的夹角。

很可惜地,对于夹角的顺序和标记,夹角的两个轴的指定,并没有任何常规。科学家对此从未达成共识。每当用到欧拉角时,我们必须明确的表示出夹角的顺序,指定其参考轴。 实际上,有许多方法可以设定两个坐标系的相对取向。欧拉角方法只是其中的一种。此外,不同的作者会用不同组合的欧拉角来描述,或用不同的名字表示同样的欧拉角。因此,使用欧拉角前,必须先做好明确的定义。 [编辑]角值范围 ?值从0 至2π弧度。 ?β值从0 至π弧度。 对应于每一个取向,设定的一组欧拉角都是独特唯一的;除了某些例外: ?两组欧拉角的α,一个是0 ,一个是2π,而β与γ分别相等,则此两组欧拉角都描述同样的取向。 ?两组欧拉角的γ,一个是0 ,一个是2π,而α与β分别相等,则此两组欧拉角都描述同样的取向。 [编辑]旋转矩阵 前面提到,设定刚体取向的旋转矩阵是由三个基本旋转矩阵合成的: 单独分开作用,每个矩阵各自代表绕着其转动轴的旋转;但是,当它们照次序相乘, ?最里面的(最右的) 矩阵代表绕着z 轴的旋转。 ?最外面的(最左的) 矩阵代表绕着Z 轴的旋转。 ?在中间的矩阵代表绕着交点线的旋转。 经过一番运算, 的逆矩阵是:

相关文档