数学建模与数学实验:螺旋曲线和平面上的焦点问题研究
数学建模与数学建模与数学数学实验实验:螺旋曲线和平面上的焦点螺旋曲线和平面上的焦点问题研究问题研究 研究研究目标目标 对于线性方程及方程组的求根问题理论上已经十分成熟,计算方法也很规范。但是对于一些非线性方程以及非线性方程组的求根问题没有一个固定的模式可循,对于一些特殊的方程只能采取一些特殊的方法才可以进行求解。在实际问题中,提出的许多方程往往还没有精确的解,所以一般都是找一个满足精度的近似解来代替。以对此一般要讨论两个问题,首先是讨论该方程是否有解,在有解的情况下化定方程根存在的范围,然后再用一些具体的数值算法缩小根的范围;其次,要讨论根的近似精度问题。本实验主要是应用一些常用的非线性方程根的迭代方法,包括牛顿迭代法、弦截法等。解决问题解决问题 1.迭代法的基本构造 2.求方程1020 xex 的一个近似解 3.油库的设计问题 问题一:迭代法的基本构造问题一:迭代法的基本构造 问题重述:在 1225 年,Leomardo 研究了方程32210200 xxx,并且得到了它的一个解,1.368808x。要求:(1)用 Matlab 软件命令 solve 求出方程的解;(2)自己设计一种迭代法求出其一个解;(3)对该方程分别尽力下面四种迭代法:1220,0,1,2,3,.210kkkxkxx 231202,0,1,2,3,.10kkkxxxk 212202,0,1,2,3,.10kkkxxkx 3120,0,1,2,3,.210kkkxxkx 分别讨论这几种迭代法的收敛性,收敛速度,对于收敛的迭代法比较收敛速度的快慢;(4)用单点弦截法和双点弦截法求方程在 1.5 附近的根;问题分析问题分析 该问题是一个基本的迭代法的编程应用问题,对第(2)问,我们考虑构造迭代:3120 102kkkxxx,并且用 stefften 迭代法进行求解;实验程序实验程序 function x=shian111function x=shian111%问题一问题一 solve(x3+2*x2+10*xsolve(x3+2*x2+10*x-20=0)20=0)%问题二问题二 x0=1;x0=1;g0=sqrt(20g0=sqrt(20-10*x010*x0-x03)/2;x03)/2;gg0=sqrt(20gg0=sqrt(20-10*g010*g0-g03)/2;g03)/2;x1=x0 x1=x0-(g0(g0-x0)2/(gg0 x0)2/(gg0-2*g0+x0);2*g0+x0);n2=0;n2=0;while abs(x1while abs(x1-x0)0.00001x0)0.00001 x0=x1;x0=x1;g0=sqrt(20g0=sqrt(20-10*x010*x0-x03)/2;x03)/2;gg0=sqrt(20gg0=sqrt(20-10*g010*g0-g03)/2;g03)/2;x1=x0 x1=x0-(g0(g0-x0)2/(gg0 x0)2/(gg0-2*g0+x0);2*g0+x0);n2=n2+1;n2=n2+1;endend x=x1x=x1 n2n2%问题三问题三(1)(1)x30=1;n31=0;x30=1;n31=0;x31=20/(x302+2*x30+10);x31=20/(x302+2*x30+10);while abs(x31while abs(x31-x30)0.00001x30)0.00001 x30=x31;x30=x31;x31=20/(x302+2*x30+10);x31=20/(x302+2*x30+10);n31=n31+1;n31=n31+1;endend n31n31%问题三问题三(2)(2)x40=1;x40=1;x41=(20 x41=(20-2*x4022*x402-x403)/10;x403)/10;while abs(x41while abs(x41-x40)0.00001x40)0.00001 x40=x41;x40=x41;x41=(20 x41=(20-2*x4022*x402-x403)/10;x403)/10;endend x=x41x=x41%问题三问题三(3)(3)x50=1;x50=1;x51=(20 x51=(20-2*x502)/(x503+10);2*x502)/(x503+10);while abs(x51while abs(x51-x50)0.00001x50)0.00001 x50=x51;x50=x51;x51=(20 x51=(20-2*x502)/(x503+10);2*x502)/(x503+10);endend x=x51x=x51%问题三问题三(4)(4)x60=1;n41=0;x60=1;n41=0;x61=(20 x61=(20-x603)/(2*x60+10);x603)/(2*x60+10);while abs(x61while abs(x61-x60)0.00001x60)0.00001 x60=x61;x60=x61;x61=(20 x61=(20-x603)/(2*x60+10);x603)/(2*x60+10);n41=n41+1;n41=n41+1;endend x=x61x=x61 n41n41%问题四问题四%单点弦截法单点弦截法 x0=1.5;n4=0;x0=1.5;n4=0;f0=x03+2*x02+10*x0f0=x03+2*x02+10*x0-20;20;x1=10/9;x1=10/9;f1=x13+2*x12+10*x1f1=x13+2*x12+10*x1-20;20;x2=x1x2=x1-f1*(x1f1*(x1-x0)/(f1x0)/(f1-f0);f0);while abs(x2while abs(x2-x1)0.00001x1)0.00001 x1=x2;x1=x2;f1=x13+2*x12+10*x1f1=x13+2*x12+10*x1-20;20;x2=x1x2=x1-f1*(x1f1*(x1-x0)x0)/(f1/(f1-f0);f0);n4=n4+1;n4=n4+1;endend x=x2x=x2 n4n4%问题四问题四%双点弦截法双点弦截法 x0=1;x0=1;x1=1.5;x1=1.5;f0=x03+2*x02+10*x0f0=x03+2*x02+10*x0-20;20;f1=x13+2*x12+10*x1f1=x13+2*x12+10*x1-20;20;x2=x1x2=x1-f1*(x1f1*(x1-x0)/(f1x0)/(f1-f0);f0);while abs(x2while abs(x2-x1)0.00001x1)0.00001 x0=x1;x0=x1;x1=x2;x1=x2;f0=x03+2*x02+10*x0f0=x03+2*x02+10*x0-20;20;f1=x13+2*x12+10*x1f1=x13+2*x12+10*x1-20;20;x2=x1x2=x1-f1*f1*(x1(x1-x0)/(f1x0)/(f1-f0);f0);endend x=x2x=x2 n4n4 运行结果运行结果 (1)ans=1.3688 ans=-1.6844+3.4313i ans=-1.6844-3.4313i(2)x=1.2213 ;迭代次数:n2=3(3)迭代一:x=1.3688;迭代次数:n31=14 迭代二:不收敛 迭代三:不收敛 迭代四:x=1.3688;迭代次数:n41=26(4)单点弦截法:x=1.3688;迭代次数:n4=4 双点弦截法:x=1.3688;迭代次数:n4=3 问题二:问题二:求方程求方程1020 xex 的一个近似解的一个近似解 求方程1020 xex 的一个近似解,误差不超过410,要求:(1)设计 4 种求解的迭代法,讨论其收敛性,并求出满足精度的近似解;(2)比较这几种方法计算量的大小;(3)在同一张图上画出各个迭代法在迭代过曾中近似解的点列图;问题分析问题分析 首先我们用 solve 方法求出方程的解,用此结果作为我们后面迭代估计的初始点的选取。题目要求设计四种迭代方法,我们考虑用书上的四种迭代思想:方法一:用 Steffenson 迭代法,首先构造函数:2()10 xeg x,则迭代公式为:21()()2()kkkkkkkg xxxg g xg xxx 方法二:一般的迭代法,1210kkxex 方法三:单点弦截法法,固定01()()()()0.25,f abaf bf aaxx,其中端点120,ab,则迭代公式为:010()()()()kkkkkf xxxxxf xf x 方法四:双点弦截法法,迭代公式为:111()()()()kkkkkkkf xxxxxf xf x 实验程序实验程序 function shiyan112%方法一:stefften 迭代 x0=0.25;g0=(2-exp(x0)/10;gg0=(2-exp(g0)/10;x1=x0-(g0-x0)2/(gg0-2*g0+x0);n1=0;while abs(x1-x0)0.00001 x0=x1;g0=(2-exp(x0)/10;gg0=(2-exp(g0)/10;x1=x0-(g0-x0)2/(gg0-2*g0+x0);n1=n1+1;end n1 x0=x1 方法二:一般迭代 x20=0.25;x21=(2-exp(x20)/10;n2=0;while abs(x21-x20)0.00001 x20=x21;x21=(2-exp(x20)/10;n2=n2+1;end n2 x20=x21%方法三:单点弦截法 x30=0.25;a=0;b=0.5;n3=0;fa=exp(a)+10*a-2;fb=exp(b)+10*b-2;x31=a-fa*(b-a)/(fb-fa);f30=exp(x30)+10*x30-2;f31=exp(x31)+10*x31-2;x32=x31-f31*(x31-x30)/(f31-f30);while abs(x32-x31)0.00001 x31=x32;f31=exp(x31)+10*x31-2;x32=x31-f31*(x31-x30)/(f31-f30);n3=n3+1;end n3 x30=x32%方法四:双点弦截法 x40=0.25;x41=0.5;n4=0;f40=exp(x40)+10*x40-2;f41=exp(x41)+10*x41-2;x42=x41-f41*(x41-x40)/(f41-f40);while abs(x42-x41)0.00001 x40=x41;x41=x42;f40=exp(x40)+10*x40-2;f41=exp(x41)+10*x41-2;x42=x41-f41*(x41-x40)/(f41-f40);n4=n4+1;end n4 x40=x42 运行结果:运行结果:(1)方法一:x=0.0905 ;迭代次数:n1=2(2)方法二:x=0.0905 ;迭代次数:n2=5(3)方法三:x=0.0905 ;迭代次数:n3=2(4)方法四:x=0.0905 ;迭代次数:n4=3 问题三:问题三:油库的设计问题油库的设计问题 有一个地下油库,它的内部设计是:横截面为圆,在中心位置上的半径是 3m,到底部和顶部的半径减小到 2m,底部和顶部相距 12m(如图 a 所示),纵截面的两侧是抛物线23,6636yxy(如图 b 所示),按要求完成下面的任务:(1)求出油库的体积;(2)为了设计油库的油量标尺,试求出油库中的油量分别为:333310,20,30,40,.mmmm时候的油的深度;(3)绘出油量与深度之间的关系曲线。其中其中 V:油罐的体积;1V:xz平面上,从06yy到部分的体积;3V:xz平面上,从366yy到部分的体积;h:油的深度。模型模型建立建立 模型一模型一 为了求解方便,建立如下图的坐标系:由纵截面的两侧是抛物面可以知道,整个油库的方程为:2223 (66)36yxzy (