第一篇:(整数值)随机数的产生教案
3.2.2(整数值)随机数的产生
【教学目标】
知识与技能:了解随机数的意义,学会用模拟方法(使用随机数表)估计概率。过程与方法:通过教师演示,理清用随机数表模拟法求概率的步骤;通过小组合作,操作确认,学会用模拟方法估计概率。
情感态度与价值观:进一步体会概率与统计之间密不可分的联系;充满激情的投入学习活动中,体会合作学习的快乐。
【教学重难点】
重点:利用随机数估计事件的概率
难点:设计恰当的试验产生随机数并加以利用 【教材分析】
随机模拟法主要适用于非古典概型类求概率的题目,教材中介绍了两种产生随机数的方法:用计算器产生随机数、用计算机产生随机数。这样安排是为了把现代信息技术运用到教学中,但在实际教学中有两个困难:一是不同型号的计算器产生随机数的方法不同,在课堂教学中难以统一;二是学生的计算机基础较差,对Excel软件的使用较为陌生。结合本节课内容的特点,在教学安排上,淡化随机数产生过程的教学,而重点放在随机模拟法估计概率的教学上,至于随机数的使用,可以借助课本103页的随机数表来完成。【教学过程】 [前提测评]
1、古典概型的特征:(1)有限性:试验中所有可能出现的基本事件只有有限个;(2)等可能性:每个基本事件出现的可能性相等。
2、古典概型的概率计算公式:
A包含的基本事件的个数 P(A)基本事件的总数
3、盒中装有形状、大小完全相同的5个小球,其中红色球3个,黄色球2个,若从中随机取出2个球,求所取出的2个球的颜色不同的概率。
解:分别记红色球为1,2,3号,黄色球为4,5号,所有的基本事件有10个:(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)
记“所取出的2个球的颜色不同”为事件A,则事件A包含的基本事件有6个:(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)
因此概率为0.6 [目标展示](略)[导学达标]
一、随机数
1、随机数:要产生1~n之间的随机数,把n个大小、形状相同的小球分别标上1,2,„,n,放入一个袋子中,充分搅拌,然后从中摸出一个,这个球上的数就称为随机数。
2、随机数的产生:(1)抽签法;(2)计算器或计算机产生:伪随机数。注:随机数表中的随机数是用计算机产生的伪随机数。
二、随机数模拟法求概率近似值
例6 天气预报说,在今后的三天中,每一天下雨的概率均为40%.这三天中恰有两天下雨的概率大概是多少?
思考:
1、本题是古典概型吗?为什么?
答:不是,因为“下雨”和“不下雨”的可能性不同。
解:第一步:设计概率模型——用随机数模拟每一天下雨的概率为40%.用1,2,3,4表示下雨,用5,6,7,8,9,0表示不下雨,这样可以体现下雨的概率是40%.因为是3天,所以每三个随机数为一组,作为三天的模拟结果。
第二步:进行统计试验——用计算器或计算机进行模拟试验。也可以直接利用随机数表进行模拟。
用计算机产生20组随机数(每组由3个数字组成),例如:
907
966 191 925 271 932 812 458 569 683 431 257 393 027 556 488 730 113 537 989 第三步:统计试验结果。
在每组数中,如果恰有两个数在1,2,3,4中,则表示恰有两天下雨,它们分别191,271,932,812,393,共5个数。
因此,三天中恰有两天下雨的概率近似为25%
2、根据本题的解题过程,总结随机数模拟法求概率近似值的步骤。
答:分三个步骤:(1)设计概率模型,(2)进行统计试验;(3)统计试验结果。
3、再模拟一次,所得结果一样吗?为什么?
答:不一样。因为用统计的方法得到的只是频率,而频率只是概率的近似值。
三、小组合作学习:
将一枚质地均匀的硬币连掷三次,出现“2个正面朝上、1个反面朝上”和“1个正面朝上、2个反面朝上”的概率各是多少?用随机模拟的方法做100次试验,计算各自的概率的近似值。(提示:你可能会用到下面的0-1随机数表)
参考解答:用数字0表示反面向上,数字1表示正面向上。因为是连掷三次,所以每3
个随机数为一组,作为1次试验的结果,因此需要产生100组随机数。
从上述随机数表中,按照一定顺序取出100组随机数,例如: 001,000,000,111,111,100,110,1 10,101,000,011,0 00,100,111,000,011,001,101,000,111,000,100,010,011,101,011,001,101,101,010,010,101,101,000,000,000,010,111,100,001,011,111,100,011,110,011,110,101,010,111,000,111,011,011,100,100,100,000,000,110,101,001,11 1,110,101,010,000,111,011,011,000,001,111,011,100,111,001,110,011,010,000,011,111,100,111,011,111,111,011,001,100,111,11 1,011,010,101,010,111,110,111(1)如果恰有两个1在一组中,则表示出现“2个正面朝上、1个反面朝上”,这样的数共有35个,因此P(“2个正面朝上、1个反面朝上”)≈35÷100=0.35.(2)如果只有一个1在一组中,则表示出现“1个正面朝上、2个反面朝上”,这样的数共有28个,因此P(“1个正面朝上、2个反面朝上”)≈28÷100=0.28.[达标测评]
1、假定某运动员每次投掷飞镖正中靶心的概率为40%,现采用随机模拟的方法估计该运动员两次投掷飞镖恰有一次命中靶心的概率:先由计算器产生0到9之间取整数值的随机数,指定1,2,3,4表示命中靶心,5,6,7,8,9,0表示未命中靶心;再以每两个随机数为一组,代表两次的结果,经随机模拟产生了20组随机数:
28 12 45 85 69 68 34 31 25
93 02 75 56 48 87 30 11 35 据此估计,该运动员两次掷镖恰有一次正中靶心的概率为()
A.0.50
B.0.45
C.0.40
D.0.35
2、一个小组有6位同学,选1为小组长,用随机模拟法估计甲被选中的概率,下面步骤错误的是
()①把6名同学编号为1~6;②利用计算器或计算机产生1到6之间的整数随机数;③统计总试验次数N及甲的编号出现的个数n;④计算频率fn(A)n1一定等于
6Nn,即为甲N被选中的概率的近似值;⑤ A.①
B.② ③
C.④
D.⑤
第二篇:示范教案(说课稿)(3.3.2 均匀随机数的产生)
3.3.2 均匀随机数的产生
整体设计
教学分析
本节在学生已经掌握几何概型的基础上,来学习解决几何概型问题的又一方法,本节课的教学对全面系统地理解掌握概率知识,对于培养学生自觉动手、动脑的习惯,对于学生辩证思想的进一步形成,具有良好的作用.通过对本节例题的模拟试验,认识用计算机模拟试验解决概率问题的方法,体会到用计算机产生随机数,可以产生大量的随机数,又可以自动统计试验的结果,同时可以在短时间内多次重复试验,可以对试验结果的随机性和规律性有更深刻的认识.三维目标
1.通过模拟试验,感知应用数字解决问题的方法,了解均匀随机数的概念;掌握利用计算器(计算机)产生均匀随机数的方法;自觉养成动手、动脑的良好习惯.2.会利用均匀随机数解决具体的有关概率的问题,理解随机模拟的基本思想是用频率估计概率.学习时养成勤学严谨的学习习惯,培养逻辑思维能力和探索创新能力.重点难点
教学重点:掌握[0,1]上均匀随机数的产生及[a,b]上均匀随机数的产生.学会采用适当的随机模拟法去估算几何概率.教学难点:利用计算器或计算机产生均匀随机数并运用到概率的实际应用中.课时安排
1课时
教学过程
导入新课
思路1
在古典概型中我们可以利用(整数值)随机数来模拟古典概型的问题,那么在几何概型中我们能不能通过随机数来模拟试验呢?如果能够我们如何产生随机数?又如何利用随机数来模拟几何概型的试验呢?引出本节课题:均匀随机数的产生.思路2
复习提问:(1)什么是几何概型?(2)几何概型的概率公式是怎样的?(3)几何概型的特点是什么?这节课我们接着学习下面的内容,均匀随机数的产生.推进新课 新知探究 提出问题
(1)请说出古典概型的概念、特点和概率的计算公式?(2)请说出几何概型的概念、特点和概率的计算公式?
(3)给出一个古典概型的问题,我们除了用概率的计算公式计算概率外,还可用什么方法得到概率?对于几何概型我们是否也能有同样的处理方法呢?
(4)请你根据整数值随机数的产生,用计算器模拟产生[0,1]上的均匀随机数.(5)请你根据整数值随机数的产生,用计算机模拟产生[0,1]上的均匀随机数.(6)[a,b]上均匀随机数的产生.活动:学生回顾所学知识,相互交流,在教师的指导下,类比前面的试验,一一作出回答,教师及时提示引导.讨论结果:
(1)在一个试验中如果 a.试验中所有可能出现的基本事件只有有限个;(有限性)b.每个基本事件出现的可能性相等.(等可能性)
我们将具有这两个特点的概率模型称为古典概率模型(classical models of probability),简称古典概型.古典概型计算任何事件的概率计算公式为:P(A)=
A所包含的基本事件的个数.基本事件的总数(2)对于一个随机试验,我们将每个基本事件理解为从某个特定的几何区域内随机地取一点,该区域中的每一个点被取到的机会都一样,而一个随机事件的发生则理解为恰好取到上述区域内的某个指定区域中的点.这里的区域可以是线段、平面图形、立体图形等.用这种方法处理随机试验,称为几何概型.几何概型的基本特点:
a.试验中所有可能出现的结果(基本事件)有无限多个; b.每个基本事件出现的可能性相等.几何概型的概率公式:P(A)=
构成事件A的区域长度(面积或体积).试验的全部结果所构成的区域长度(面积或体积)(3)我们可以用计算机或计算器模拟试验产生整数值随机数来近似地得到所求事件的概率,对于几何概型应当也可.(4)我们常用的是[0,1]上的均匀随机数.可以利用计算器来产生0—1之间的均匀随机数(实数),方法如下:
试验的结果是区间[0,1]内的任何一个实数,而且出现任何一个实数是等可能的,因此,就可以用上面的方法产生的0—1之间的均匀随机数进行随机模拟.(5)a.选定A1格,键入“=RAND()”,按Enter键,则在此格中的数是随机产生的[0,1]之间的均匀随机数.b.选定A1格,按Ctrl+C快捷键,选定A2—A50,B1—B50,按Ctrl+V快捷键,则在A2—A50, B1—B50的数均为[0,1]之间的均匀随机数.(6)[a,b]上均匀随机数的产生:
利用计算器或计算机产生[0,1]上的均匀随机数X=RAND, 然后利用伸缩和平移变换,X=X*(b-a)+a就可以得到[a,b]上的均匀随机数,试验结果是[a,b]内任何一实数,并且是等可能的.这样我们就可以通过计算机或计算器产生的均匀随机数,用随机模拟的方法估计事件的概率.应用示例
思路1 例1 假设你家订了一份报纸,送报人可能在早上6:30—7:30之间把报纸送到你家,你父亲离开家去工作的时间在早上7:00—8:00之间,问你父亲在离开家前能得到报纸(称为事件A)的概率是多少? 活动:用计算机产生随机数模拟试验,我们可以利用计算机产生0—1之间的均匀随机数,利用计算机产生B是0—1的均匀随机数,则送报人送报到家的时间为B+6.5,利用计算机产生A是0—1的均匀随机数,则父亲离家的时间为A+7,如果A+7>B+6.5,即A>B-0.5时,事件E={父亲离家前能得到报纸}发生.也可用几何概率的计算公式计算.解法一:1.选定A1格,键入“=RAND()”,按Enter键,则在此格中的数是随机产生的[0,1]之间的均匀随机数.2.选定A1格,按Ctrl+C快捷键,选定A2—A50,B1—B50,按Ctrl+V快捷键,则在A2—A50,B1—B50的数均为[0,1]之间的均匀随机数.用A列的数加7表示父亲离开家的时间,B列的数加6.5表示报纸到达的时间.这样我们相当于做了50次随机试验.3.如果A+7>B+6.5,即A-B>-0.5,则表示父亲在离开家前能得到报纸.4.选定D1格,键入“=A1-B1”;再选定D1,按Ctrl+C,选定D2—D50,按Ctrl+V.5.选定E1格,键入频数函数“=FREQUENCY(D1:D50,-0.5)”,按Enter键,此数是统计D列中,比-0.5小的数的个数,即父亲在离开家前不能得到报纸的频数.6.选定F1格,键入“=1-E1/50”,按Enter键,此数是表示统计50次试验中,父亲在离开家前能得到报纸的频率.解法二:以横坐标X表示报纸送到时间,以纵坐标Y表示父亲离家时间,建立平面直角坐标系,父亲在离开家前能得到报纸的事件构成区域是下图:
由于随机试验落在方形区域内任何一点是等可能的,所以符合几何概型的条件.根据题意,只要点落到阴影部分,就表示父亲在离开家前能得到报纸,即事件A发生,所以11112227.P(A)=18例2 在如下图的正方形中随机撒一把豆子,用计算机随机模拟的方法估算圆周率的值.解法1:随机撒一把豆子,每个豆子落在正方形内任何一点是等可能的,落在每个区域的豆子数与这个区域的面积近似成正比,即
圆的面积落在圆中的豆子数.正方形的面积落在正方形中的豆子数假设正方形的边长为2,则
圆的面积.正方形的面积224落在圆中的豆子数×4,落在正方形中的豆子数由于落在每个区域的豆子数是可以数出来的,所以π≈这样就得到了π的近似值.解法2:(1)用计算机产生两组[0,1]内均匀随机数a1=RAND(),b1=RAND().(2)经过平移和伸缩变换,a=(a1-0.5)*2,b=(b1-0.5)*2.(3)数出落在圆x2+y2=1内的点(a,b)的个数N1,计算π=
4N1(N代表落在正方形中的点N(a,b)的个数).点评:可以发现,随着试验次数的增加,得到圆周率的近似值的精确度会越来越高,利用几何概型并通过随机模拟的方法可以近似计算不规则图形的面积.例3 利用随机模拟方法计算下图中阴影部分(y=1和y=x2所围成的部分)的面积.分析:师生共同讨论,在坐标系中画出矩形(x=1,x=-1,y=1和y=-1所围成的部分),利用模拟的方法根据落在阴影部分的“豆子”数和落在矩形的“豆子”数的比值,等于阴影面积与矩形面积的比值.解:(1)用计算机产生两组[0,1]内均匀随机数a1=RAND(),b=RAND().(2)进行平移和伸缩变换,a=(a1-0.5)*2.(3)数出落在阴影内(即满足00)的样本点数N1,用几何概型公式计算阴影部分的面积.例如做1 000次试验,即N=1 000,模拟得到N1=698,所以S≈
2N1=1.396.N(N代表落在矩形中的点(a,b)的个数).思路2 例1 取一根长度为3 m的绳子,拉直后在任意位置剪断,那么剪得两段的长都不小于1 m的概率有多大?
分析:在任意位置剪断绳子,则剪断位置到一端点的距离取遍[0,3]内的任意数,并且每一个实数被取到都是等可能的.因此在任意位置剪断绳子的所有结果(基本事件)对应[0,3]上的均匀随机数,其中取得的[1,2]内的随机数就表示剪断位置与端点距离在[1,2]内,也就是剪得两段长都不小于1 m.这样取得的[1,2]内的随机数个数与[0,3]内的个数之比就是事件A发生的概率.解法一:(1)利用计算器或计算机产生一组0到1区间的均匀随机数a1=RAND.(2)经过伸缩变换,a=a1×3.(3)统计出[1,2]内随机数的个数N1和[0,3]内随机数的个数N.(4)计算频率fn(A)=N1即为概率P(A)的近似值.N解法二:做一个带有指针的圆盘,把圆周三等分,标上刻度[0,3](这里3和0重合).转动圆盘记下指针在[1,2](表示剪断绳子位置在[1,2]范围内)的次数N1及试验总次数N,则fn(A)即为概率P(A)的近似值.点评:用随机数模拟的关键是把实际问题中事件A及基本事件总体对应的区域转化为随机数的范围.解法2用转盘产生随机数,这种方法可以亲自动手操作,但费时费力,试验次数不可能很大;解法1用计算机产生随机数,可以产生大量的随机数,又可以自动统计试验的结果,同时可以在短时间内多次重复试验,可以对试验结果的随机性和规律性有更深刻的认识.例2 利用随机模拟方法计算曲线y=
1,x=1,x=2和y=0所围成的图形的面积.x活动:在直角坐标系中画出正方形(x=1,x=2,y=0,y=1所围成的部分),用随机模拟的方法可以得到它的面积的近似值.解:(1)利用计算器或计算机产生两组0到1区间上的随机数,a1=RAND,b=RAND;(2)进行平移变换:a=a1+1;(其中a,b分别为随机点的横坐标和纵坐标)(3)数出落在阴影内的点数N1,用几何概型公式计算阴影部分的面积.例如,做1 000次试验,即N=1 000,模拟得到N1=689, 所以SN1=0.689,即S≈0.689.1N点评:模拟计算的步骤:(1)构造图形(作图);
(2)模拟投点,计算落在阴影部分的点的频率
m; n(3)利用md的测度≈P(A)=算出相应的量.nD的测度变式训练
在长为12 cm的线段AB上任取一点M,并以线段AM为边作正方形,求这个正方形的面积介于36 cm2与81 cm2之间的概率.分析:正方形的面积只与边长有关,此题可以转化为在12 cm长的线段AB上任取一点M,求使得AM的长度介于6 cm与9 cm之间的概率.解:(1)用计算机产生一组[0,1]内均匀随机数a1=RAND.(2)经过伸缩变换,a=a1×12得到[0,12]内的均匀随机数.(3)统计试验总次数N和[6,9]内随机数个数N1.(4)计算频率.记事件A={面积介于36 cm2与81 cm2之间}={长度介于6 cm与9 cm之间},则P(A)的近似值为fn(A)=N1.N知能训练
有一个半径为5的圆,现在将一枚半径为1的硬币向圆投去,如果不考虑硬币完全落在圆外的情况,试求硬币完全落入圆内的概率.解:由题意,如右图,因为硬币完全落在圆外的情况是不考虑的,所以硬币的中心均匀地分布在半径为6的圆O内,且只有中心落入与圆O同心且半径为4的圆内时,硬币才完全落入圆内.424.记“硬币完全落入圆内”为事件A,则P(A)=296
答:硬币完全落入圆内的概率为
4.9拓展提升
如右图,∠AOB=60°,OA=2,OB=5,在线段OB上任取一点C,试求:(1)△AOC为钝角三角形的概率;(2)△AOC为锐角三角形的概率.解:如右图,由平面几何知识: 当AD⊥OB时,OD=1; 当OA⊥AE时,OE=4,BE=1.(1)当且仅当点C在线段OD或BE上时,△AOC为钝角三角形, 记“△AOC为钝角三角形”为事件M,则P(M)=
ODEB11=0.4,OB5即△AOC为钝角三角形的概率为0.4.(2)当且仅当点C在线段DE上时,△AOC为锐角三角形, 记“△AOC为锐角三角形”为事件N,则P(N)=
DE3=0.6, OB5即△AOC为锐角三角形的概率为0.6.课堂小结
均匀随机数在日常生活中有着广泛的应用,我们可以利用计算器或计算机来产生均匀随机数,从而来模拟随机试验,其具体方法是:建立一个概率模型,它与某些我们感兴趣的量(如概率值、常数)有关,然后设计适当的试验,并通过这个试验的结果来确定这些量.作业
课本习题3.3B组题.设计感想
本节课我们根据问题的需要利用一组随机数进行模拟试验,也利用两组随机数进行模拟试验.用随机数模拟的关键是把实际问题中事件A及基本事件总体对应的区域转化为随机数的范围.用计算机产生随机数,可以产生大量的随机数,又可以自动统计试验的结果,同时可以在短时间内多次重复试验,可以对试验结果的随机性和规律性有更深刻的认识;相信通过本节的学习一定会提高同学们的应用能力,也能解决平常不能解决的一些问题.
第三篇:课题:古典概型及随机数的产生
高二(文科)教学案 NO:20 课题:古典概型及随机数的产生
一、教学目标:
1.正确理解古典概型的两大特点: 1)试验中所有可能出现的基本事件只有有限个;
2)每个基本事件出现的可能性相等;
2.掌握古典概型的概率计算公式:P(A)=
A包含的基本事件个数
总的基本事件个数3.了解随机数的概念;
4.利用计算机产生随机数,并能直接统计出频数与频率。
二、重点与难点:
1、正确理解掌握古典概型及其概率公式;
2、正确理解随机数的概念,并能应用计算机产生随机数.
三、学法与教学用具:
1、与学生共同探讨,应用数学解决现实问题;
2、通过模拟试验,感知应用数字解决问题的方法,自觉养成动手、动脑的良好习惯.
四、教学设想:
1、创设情境:(1)掷一枚质地均匀的硬币,结果只有2个,即“正面朝上”或“反面朝上”,它们都是随机事件。
(2)一个盒子中有10个完全相同的球,分别标以号码1,2,3,„,10,从中任取一球,只有10种不同的结果,即标号为1,2,3„,10。师生共同探讨:根据上述情况,你能发现它们有什么共同特点?
2、基本概念:
(1)基本事件、古典概率模型、随机数、伪随机数的概念见课本P121~126;
(2)古典概型的概率计算公式:P(A)=
A包含的基本事件个数.
总的基本事件个数
3、例题分析:
例1 掷一颗骰子,观察掷出的点数,求掷得奇数点的概率。
小结:利用古典概型的计算公式时应注意两点:
(1)所有的基本事件必须是互斥的;
(2)m为事件A所包含的基本事件数,求m值时,要做到不重不漏。例2 从含有两件正品a1,a2和一件次品b1的三件产品中,每次任取一件,每次取出后不放回,连续取两次,求取出的两件产品中恰有一件次品的概率。
例3 现有一批产品共有10件,其中8件为正品,2件为次品:
(1)如果从中取出一件,然后放回,再取一件,求连续3次取出的都是 8
正品的概率;
(2)如果从中一次取3件,求3件都是正品的概率.
分析:(1)为返回抽样;(2)为不返回抽样.
小结:关于不放回抽样,计算基本事件个数时,既可以看作是有顺序的,也可以看作是无顺序的,其结果是一样的,但不论选择哪一种方式,观察的角度必须一致,否则会导致错误.
例5 某篮球爱好者,做投篮练习,假设其每次投篮命中的概率是40%,那么在连续三次投篮中,恰有两次投中的概率是多少?
小结:(1)利用计算机或计算器做随机模拟试验,可以解决非古典概型的概率的求解问题。
(2)对于上述试验,如果亲手做大量重复试验的话,花费的时间太多,因此利用计算机或计算器做随机模拟试验可以大大节省时间。(3)随机函数RANDBETWEEN(a,b)产生从整数a到整数b的取整数
值的随机数。
4、课堂小结:
本节主要研究了古典概型的概率求法,解题时要注意两点:
(1)古典概型的使用条件:试验结果的有限性和所有结果的等可能性。(2)古典概型的解题步骤;
①求出总的基本事件数;
②求出事件A所包含的基本事件数,然后利用公式P(A)=A包含的基本事件数
总的基本事件个数(3)随机数量具有广泛的应用,可以帮助我们安排和模拟一些试验,这样可以代替我们自己做大量重复试验,比如现在很多城市的重要考试采用产生 9 随机数的方法把考生分配到各个考场中。
5、课后训练巩固
1.在40根纤维中,有12根的长度超过30mm,从中任取一根,取到长度超过30mm的纤维的概率是()
A.301212
B.
C.
D.以上都不对 4040302.盒中有10个铁钉,其中8个是合格的,2个是不合格的,从中任取一个恰为合格铁钉的概率是()
A.1141
B.
C.
D.
545103.在大小相同的5个球中,2个是红球,3个是白球,若从中任取2个,则所取的2个球中至少有一个红球的概率是
。4.抛掷2颗质地均匀的骰子,求点数和为8的概率。
5.利用计算器生产10个1到20之间的取整数值的随机数。
五.课后反思总节
—————————————————————————————————————————————————————————————————————————————————————
第四篇:数值分析教教案18
4.1.3 Newton法
1.算法的基本思想
图4-5 牛顿法原理示意图
将非线性方程线性化,以线性方程的解逐步逼近非线性方程的解,这就是Newton法的基本思想。
把函数f(x)在某一初始值x0点附近展开成Taylor级数有
f(x0)f(x)f(x0)(xx0)f(x0)(xx0)取其
2!线性部分,近似地代替函数f(x)可得方程的近似式:
2f(x)f(x0)(xx0)f(x0)0
设f(x0)0,解该近似方程可得:
f(x0)x1x0f(x0)
可作为方程(4-1)的近似解。重复以上过程,得迭代公式
xk1f(xk)xk(k0,1,2,)(4-8)
f(xk)按式(4-8)求方程(4-1)的近似解称为Newton法。Newton法也是一种不动点迭代,其迭代函数为
f(x)g(x)xf(x)
如图(4-5)所示,从几何上看,yf(x0)f(x0)(xx0)为曲线yf(x)过点(x0,f(x0))的切线,x1为切线与x轴交点,x2则
x轴的交点。如此继续下去,xk1为曲线上点(x,f(x))处的切线与x轴的交点。因此Newton法是以曲线的切线与x轴的交点作为曲线与x轴的交点的近似,故是曲线上点(x1,f(x1))处的切线与
kkNewton法又称为切线法。
2.切线法的收敛性
理论可以证明,在有根区间[a,b]上,f(x)0,f(x)连续且不变号,则只要选取的初始近似根
x0满足f(x0)f(x0)0,切线法必定收敛。它的收敛速度可如下推出。
方程f(x)0可以等价地写成f(x)(xx)f(x),若f(x)0f(x)f(x)移项可得xxf(x)。设g(x)xf(x),两边求导得f(x)f(x)g(x)f(x)0g(x)0。xx,则必得 2,代入[f(x)]另一方面,比较迭代公式xk1f(xk)xkf(xk)和f(x)g(x)xg(x)xg(x)x可知。把函数在点展k1kf(x)成泰勒级数,只取到二阶导数则有:
g(x)2g(xk)g(x)g(x)(xkx)(xkx)由
2g(x)g(xk)g(x)(xkx)2,移
2xk1g(x)0,所以有xk1于xg(x),得出 项并注意
g(x)xk1g(x)xk1x(xkx)2
2为了将式中的g(x)换成ff(x)f(x)(x),对g(x)[f(x)]2两边求导,并代入f(x)0,则有:
f(x)g(x)f(x)*将它代入前式得出
f(x)2xk1x(xkx)(4-9)2f(x)f(x)2f(x)是个常数,式(4-9)表明用牛顿迭代公式在某次算得的误差,与上次误差的平方成正比,可见牛顿迭代公式的收敛速度很快,但计算实践表明,当初值不够好时,Newton法可能发散。一般可由问题的实际背景来预测或由对分区间法求得较好的初始值。
3.Newton迭代公式Matlab实现
按照算法4-4编写迭代法的Matlab程序(函数名:Newton.m).function [p1,err,k,y]=newton(f,df,p0,delta,max1)% f是非线性函数 % df是f的微商 % p0是初始值
% delta是给定允许误差 % max1是迭代的最大次数
% p1是牛顿法求得的方程的近似值 % err是p0的误差估计 % k是迭代次数 % y=f(p1)p0,feval('f',p0)for k=1:max1 p1=p0-feval('f',p0)/feval('df',p0);err=abs(p1-p0);p0=p1;p1,err,k,y=feval('f',p1)if(err 3x3x2的近似值,给定一个初始值【例4-3】求方程p01.2,误差界为106。 首先,在MATLAB命令窗口输入: fplot('[x^3-3*x+2,0]',[-2.5 2.5]);grid;回车得到如图4-6所示图形,即可知函数f(x)与x轴有交点,也就是说有根,并且从图中能够大致估算到根的位置。 3f(x)x3x2: 先用一个名为f.m的文件定义函数function y=f(x)y=x^3-3*x+2; 2df(x)3x3: 再用一个名为df.m的文件定义函数的微商function y=df(x)y=3*x^2-3;然后在MATLAB命令窗口输入: >> newton('f','df',1.2,10^(-6),10) 图4-6 f(x)与x轴交点显示图 回车得到如下结果(只给出了最后两次迭代结果): …… k = 9 p1 = 1.0004 err = 4.1596e-004 k = 10 p1 = 1.0002 err = 2.0802e-004 ans = 1.0002 4.1.4弦截法 1.弦截法基本原理 图4-7弦截法原理示意图 f(xk)的值,当f比较复杂时难以实现,下面要介绍的弦截法用f(x)在两个点上的值构造一次插值函用牛顿法解非性方程要知道数来回避微商的计算。 给定非线性方程f(x)0,选定曲线 yf(x)上的两个点P0(x0,f(x0)),P1(x1,f(x1)),过这两个点作一条直线P0P1,则直f(x1)f(x0)(xx1)。当线方程yf(x1)x1x0f(x0)f(x1)时,f(x1)(x1x0)x2x1xx直线P0P与轴交点为,这时用2作为1f(x1)f(x0)曲线yf(x)与x轴交点的近似值,显然: x2xmin(x1x,x0x) 这里***x*为f(x)0的精确解。然后用 P1(x1,f(x1)),P2(x2,f(x2)),构造直线P1P2,重复上述步骤,可以求出x3。 如此进行下去,得到迭代格式: f(xk)xk1xk(xkxk1)(k0,1,)(4-10)f(xk)f(xk1)f(xk)f(xk1)迭代格式(4-10)实际上就是用差商取代牛顿公xkxk1式xk1f(xk)xk(x)的结果,所以弦截法可以看成f中的微商f(xk)牛顿法的一种变形。 弦截法与牛顿虽然都是非线性方程线性化的方法,但牛顿法在计算xk1时只用到xk的值,但是弦截法要用到xk和xk1的值,故这就要给定两个初值。切线法具有恒收敛且收敛速度快的优点,但需要求出函数的导数;弦截法不需要求导数,收敛速度很快,但是需要知道两个近似的初始值才能作出弦,要求的初始值条件较多。2.弦截法的MATLAB实现 function [p1,err,k,y]=secant(f,p0,p1,delta,max1)% f是给定的非线性函数 % p0,p1为初始值 % delta为给定误差界 % max1是迭代次数的上限 % p1为所求得的方程的近似解 % err为p1-p0绝对值 % k为所需要的迭代次数 % y=f(p1)k=0,p0,p1,feval('f',p0),feval('f',p1)for k=1:max1 p2=p1-feval('f',p1)*(p1-p0)/(feval('f',p1)-feval('f',p0));err=abs(p2-p1);p0=p1;p1=p2;k,p1,err, y=feval('f',p1)if(err xx20,给定初值为 3p01.5,p11.52,误差界为106。 首先,在MATLAB命令窗口输入: fplot('[x^3-x+2,0]',[-2.5 2.5]);grid;回车得到如图4-8所示图形,即可知函数f(x)与x轴有交点,也就是说有根,并且从图中能够大致估算到根的位置。 3f(x)xx2; 解:先用一个名为f.m的文件定义function y=f(x)y=x^3-x+2;然后在MATLAB命令窗口输入: >> secant('f',-1.5,-1.52,10^(-6),11)k =0 p0 =-1.5000 p1 =-1.5200 ans =0.1250 ans =0.0082 k =1 p1 =-1.5214 err =0.0014 y =-1.3633e-004 k =2 p1 =-1.5214 err =2.2961e-005 y =1.4454e-007 k =3 p1 =-1.5214 err =2.4318e-008 y =2.5460e-012 ans =-1.5214 这就表明经过了3次迭代得到满足精足要求的近似解xx31.5214,且f(x3)2.5461012。 图4-8 f(x)与x轴交点显示图 4.1.5抛物线法 1.抛物法的基本原理 设已知方程f(x)=0的三个近似根xk,xk-1,xk-2,我们以这三点为节点构造二次插值多项式P(x)的一个零点xk+1作为新的近似根,这样确定的迭代过程称抛物线法。 在几何图形上,这种方法的基本思想是用抛物线与 x轴的交点xk+1作为所求根的近似位置(图6-7)。 图4-9抛物法图形 现在推导抛物线法的计算公式.插值多项式 P(x)=f(xk)+ f[xk,x k-1](x-xk)+f[xk,xk-1,xk-2](x-xk)(x-xk-1) 有两个零点: xk+1=xk-式中 2f(xk)ω±ω2-4f(xk)f[xk,xk-1,xk-2](4-11) ω=f[xk,xk-1]+f[xk,xk-1,xk-2](xk-xk-1) 为了从(4-11)式定出一个值取舍问题. 在xk+1,我们需要讨论根式前正负号的xk,xk-1,xk-2三个近似根中,自然假定xk更接近所求的根x*,这时,为了保证精度,我们选定(4-11)中较接近xk的一个值作为新的近似根xk+1,为此,只要取根式前的符号与ω的符号相同。 2.抛物法的计算步骤 给定非线性方程f(x)0,误差界ε,迭代次数上限N。(1)计算ω=(2)计算f[xk,xk- 1]+f[xk,xk- 1,xk- 2](xk-xk- 1) 2f(xk),代入: ω±ω2-4f(xk)f[xk,xk-1,xk-2]xk+ 1=xk-2f(xk)ω±ω2-4f(xk)f[xk,xk-1,xk-2] 得出xk+1的值后,计算f(xk+1)。 *x-xx(3)若k+1≈xk+1;否则的话,令: k≤ε则迭代停止,取(xk- 2,xk- 1,xk,f(xk- 2),f(xk- 1),f(xk))=(xk- 1,xk,xk+ 1,f(xk- 1),f(xk),f(xk+ 1)),n=n+1。 (4)如果迭代次数k>N,则认为该迭代格式对于所选初值不收敛,迭代停止;否则的话重返步骤(2)。3.抛物法Matlab实现 按照算法编写迭代法的Matlab程序 function root=Parabola(f,a,b,x,eps)% f是非线性函数 % a为有根区间的左限 % b为有根区间的右限 % eps为根的精度 % root为求出的函数零点 % x为初始迭代点的值 if(nargin==4)eps=1.0e-4;end f1=subs(sym(f),findsym(sym(f)),a);% subs命令是符号函数赋值 f2=subs(sym(f),findsym(sym(f)),b);% findsym确定自由变量是对整个矩阵进行的 if(f1==0)root=a;end if(f2==0)root=b;end if(f1*f2>0)disp('两端点函数值乘积大于0!');return;else tol=1;fa=subs(sym(f),findsym(sym(f)),a);fb=subs(sym(f),findsym(sym(f)),b);fx=subs(sym(f),findsym(sym(f)),x);d1=(fb-fa)/(b-a);d2=(fx-fb)/(x-b);d3=(d2-d1)/(x-a);B=d2+d3*(x-b);root=x-2*fx/(B+sign(B)*sqrt(B^2-4*fx*d3));t=zeros(3);t(1)=a;t(2)=b;t(3)=x;while(tol>eps)t(1)=t(2);t(2)=t(3);t(3)=root;f1=subs(sym(f),findsym(sym(f)),t(1));f2=subs(sym(f),findsym(sym(f)),t(2));f3=subs(sym(f),findsym(sym(f)),t(3));d1=(f2-f1)/(t(2)-t(1));d2=(f3-f2)/(t(3)-t(2));d3=(d2-d1)/(t(3)-t(1));B=d2+d3*(t(3)-t(2));root=t(3)-2*f3/(B+sign(B)*sqrt(B^2-4*f3*d3));tol=abs(root-t(3));end end 【例4-5】用抛物法求解方程lgx+x=2在区间[1,4]内的一个根。 首先,在MATLAB命令窗口输入: fplot('[sqrt(x)+log(x)-2]',[1 4]);grid;回车得到如图4-10所示图形,即可知函数f(x)与x轴有交点,也就是说有根,并且从图中能够大致估算到根的位置。 1.510.50-0.5-1 图4-10 f(x)与x轴交点显示图 然后在MATLAB命令窗口输入: >> r=Parabola(' sqrt(x)+log(x)-2',1,4,2)回车得到如下结果: r = 1.8773 从结果中可以知道,方程lgx+11.522.533.54x=2的一个根x=1.8773。 标准库 从srand(seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed); 参数seed是rand()的种子,用来初始化rand()的起始值。可以认为rand()在每次被调用的时候,它会查看: 1)如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。 2)如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。根据上面的第一点我们可以得出: 1)如果希望rand()在每次程序运行时产生的值都不一样,必须给srand(seed)中的seed一个变值,这个变值必须在每次程序运行时都不一样(比如到目前为止流逝的时间)。 2)否则,如果给seed指定的是一个定值,那么每次程序运行时rand()产生的值都会一样,虽然这个值会是[seed, RAND_MAX(0x7fff))之间的一个随机取得的值。 3)如果在调用rand()之前没有调用过srand(seed),效果将和调用了srand(1)再调用rand()一样(1也是一个定值)。 举几个例子,假设我们要取得0~6之间的随机整数(不含6本身): 例一,不指定seed: for(int i=0;i<10;i++){ ran_num=rand()% 6;cout< srand((unsigned)time(0));for(int i=0;i<10;i++){ ran_num=rand()% 6;cout< time_t被定义为长整型,它返回从1970年1月1日零时零分零秒到目前为止所经过的时间,单位为秒。比如假设输出: cout<第五篇:用C语言的rand和srand产生伪随机数的方法总结