二阶非线性常微分方程的打靶法
非线性微分方程边值问题打靶算法Matlab程序
非线性微分方程边值问题打靶算法Matlab程序【非线性微分方程边值问题打靶算法】参见:// matlabsky /thread-828-1-1.html【线性微分方程边值问题打靶算法】参见 :// matlabsky /thread-827-1-1.html 【线性微分方程边值问题有限差分算法】参见:// matlabsky /thread-829-1-1.html下面我们讲解下【非线性微分方程边值问题打靶算法】对于边值问题线性边值问题时,p、q和r只是x的函数,但是非线性时它们是x,y和y'的函数我们将问题转换为如下初值问题现在我们需要做的就是找到那个m,使得y(b)=beta,换句话说y现在由两个变量最终控制,即m和x。
对于这个求m的问题,我们可以使用牛顿迭代法得到(1)先给出一个初值m=1(2)计算出对应的y(b)为yb,这个直接使用ode45计算,得到y(end,1)就是yb(3)根据beta和yb的差异更新m(4)将新的m带入(2)重新计算yb并更新m(5)如此迭代直到m稳定或者在允许误差范围内下面详细描述了Matlab代码的运行过程以下内容需要回复才能看到复制内容到剪贴板代码:function [t,x]=nlineshoot(funcn,funcv,tspan,bound,tol,varargin)%对微分方程y''=p*y'+q*y+r,a<t<b,u(a)=alpha,u(b)=beta,其中p,q和r为x,y和y'的函数%只要对应修改p,q,r并将y'用x(2)替换,y用x(1)替换,就可以了%funcn=@(t,x)[x(2);p*x(2)+q*x(1)+r];%funcv=@(t,x)[x(2);p*x(2)+q*x(1)+r;x(4);x(3)*dF/dy+x(4)*dF/y'];%%% Example%F=y''=2y*y',y(0)=-1,y(pi/2)=1%%由方程有p=2y=2*x(1),q=r=0%dF/dy=2*y'=2*x(2) %y'用x(2)替换,y用x(1)替换%dF/dy'=2*y=2*x(1)%%funcn=@(t,x)[x(2);2*x(1)*x(2)];%funcv=@(t,x)[x(2);2*x(1)*x(2);x(4);2*x(2)*x(3)+2*x(1)*x(4)]; %tspan=[0 pi/2];%bound=[-1 1];%tol=1e-8;%[t,y]=nlineshoot(funcn,funcv,tspan,bound,tol);%plot(t,y)%legend('x1','x2')%%by dynamic%see also :// matlabsky%2009.3.12%%lb=bound(1);ub=bound(2);m0=0;m=1;while norm(m-m0)>tolm0=m;[t,x]=ode45(funcv,tspan,[lb;m;0;1],varargin);m=m0-(x(end,1)-ub)/x(end,3);end[t,x]=ode45(funcn,tspan,[lb;m]);下面的图形是代码中附带实例的运行结果线性微分方程边值问题打靶算法Matlab程序【非线性微分方程边值问题打靶算法】参见:// matlabsky /thread-828-1-1.html 【线性微分方程边值问题打靶算法】参见:// matlabsky /thread-827-1-1.html【线性微分方程边值问题有限差分算法】参见:// matlabsky /thread-829-1-1.html注意该算法只能完成二阶常微分方程双边值问题求解,至于其他形式的边值问题必须先转换到二阶形式对于下面的二阶常微分方程利用上面方程的线性结果和两个特殊的初值问题,我们可以构造两个等效的常微分初值方程初值问题,对于初值问题我们就可以直接使用ode**计算器或者龙哥库塔算法求解了。
化工应用数学-常微分方程数值解-打靶法
问题:一维均匀介质稳态导热问题。设其一端绝热,
另一端恒温为T1,求此均匀介质上的温度分布?
(x0, T1)
xL此处绝热
x1
温度?
x2
x3
温度? 温度?
T=f(x)?
d
(k dT ) 0
dx f (0)
dx T1
dT
0
dx xL
2020/6/19
化工应用数学
3
边值问题是指在自变量x的某一区间[a,b]的两个端点
常微分方程数值解
常微分方程边值问题
问题:一维均匀介质稳态导热问题。设其一端绝热,
另一端恒温为T1,求此均匀介质上的温度分布?
(x0, T1)
xL此处绝热
x1
温度?
x2
温度?
x3
温度?
T=f(x) 其中x代表均匀介质上某一位置距离端点的距离; T代表x处的温度。
2020/6/19
化工应用数学
2
常微分方程边值问题
二阶方程的 y'' f (x, y, y' ),a<x<b
第一边值问题:
y(a)
;
y(b)
二阶方程的 y'' f (x, y, y' ),a<x<b
初值问题:
y(a)
;
y
'
(a)
m
2020/6/19
化工应用数学
任务:寻找 m,使得 y(b)=β
6
y
m=m1
(b,β) m=m3
m=m2
(a,α) x
F(m)
F (m2 )
(F (m2 ) ) (F (m1) )
m2 m1
常微分方程打靶法
常微分方程打靶法
常微分方程打靶法是一种解常微分方程初值问题的数值解法。
它的基本思想是通过将初值问题转化为一个对参数的非线性方程,然后使用数值迭代的方法来逼近该非线性方程的解。
具体步骤如下:
1. 将常微分方程的初值问题表示为一个一阶方程组的形式。
2. 假设参数的初值,并将问题转化为一个求解非线性方程的问题。
3. 对于每个猜测的参数值,使用常微分方程的数值解法(例如欧拉法或龙格-库塔法)来求解对应的一阶方程组。
4. 根据数值解的结果,计算逼近解的误差。
5. 使用数值迭代的方法(如牛顿法)来更新参数的值,直到逼近解的误差满足预设的要求。
6. 重复步骤3~5,直到得到满足要求的逼近解。
通过常微分方程打靶法,可以有效地求解一些常微分方程初值问题,尤其是对于无解析解的情况。
然而,该方法的收敛性和稳定性需要根据具体的问题来评估,并且在实际应用中需要对参数的初值选择和迭代过程进行合理的调整。
打靶法
用某种离散化数值步骤求出常微分方程边值问题在离散点上的近似解的方法。
各种实际问题导出不同类型的边值问题。
较简单的有二阶常微分方程两点边值问题:求函数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转向③继续计算直到满意为止。
特别地,若微分方程是线性的,则打靶法变成线性组合法,即根据常微分方程理论适当选取初值可得到一组线性独立解,利用它们的线性组合导出边值问题的解。
例如线性方程边值问题的数值解可通过两个初值问题数值解来实现。
(完整版)二阶常微分方程边值问题的数值解法毕业论文
(完整版)二阶常微分方程边值问题的数值解法毕业论文二阶常微分方程边值问题的数值解法摘要求解微分方程数值解的方法是多种多样的,它本身已形成一个独立的研究方向,其要点是对微分方程定解问题进行离散化.本文以研究二阶常微分方程边值问题的数值解法为目标,综合所学相关知识和二阶常微分方程的相关理论,通过对此类方程的数值解法的研究,系统的复习并进一步加深对二阶常微分方成的数值解法的理解,为下一步更加深入的学习和研究奠定基础.对于二阶常微分方程的边值问题,我们总结了两种常用的数值方法:打靶法和有限差分法.在本文中我们主要探讨关于有限差分法的数值解法.构造差分格式主要有两种途径:基于数值积分的构造方法和基于Taylor展开的构造方法.后一种更为灵活,它在构造差分格式的同时还可以得到关于截断误差的估计.在本文中对差分方法列出了详细的计算步骤和Matlab程序代码,通过具体的算例对这种方法的优缺点进行了细致的比较.在第一章中,本文将系统地介绍二阶常微分方程和差分法的一些背景材料.在第二章中,本文将通过Taylor展开分别求得二阶常微分方程边值问题数值解的差分格式.在第三章中,在第二章的基础上利用Matlab求解具体算例,并进行误差分析.关键词:常微分方程,边值问题,差分法,Taylor展开,数值解The Numerical Solutions ofSecond-Order Ordinary Differential Equations with the Boundary Value ProblemsABSTRACTThe numerical solutions for solving differential equations are various. It formed an independent research branch. The key point is the discretization of the definite solution problems of differential equations. The goal of this paper is the numericalmethods for solving second-order ordinary differential equations with the boundary value problems. This paper introduces the mathematics knowledge with the theory of finite difference. Through solving the problems, reviewing what have been learned systematically and understanding the ideas and methods of the finite difference method in a deeper layer, we can establish a foundation for the future learning.For the second-order ordinary differential equations with the boundary value problems, we review two kinds of numerical methods commonly used for linear boundary value problems, i.e. shooting method and finite difference method. There are mainly two ways to create these finite difference methods: i.e. Taylor series expansion method and Numerical Integration. The later one is more flexible, because at the same time it can get the estimates of the truncation errors. We give the exact calculating steps and Matlab codes. Moreover, we compare the advantages and disadvantages in detail of these two methods through a specific numerical example. In the first chapter, we will introduce some backgrounds of the ordinary differential equations and the difference method. In the second chapter, we will obtain difference schemes of the numerical solutions of the Second-Order ordinary differential equations with the boundary value problems through the Taylor expansion. In the third chapter, we using Matlab tosolve the specific examples on the basis of the second chapter, and analyzing the errors.KEY WORDS: Ordinary Differential Equations, Boundary Value Problems, Finite Difference Method, Taylor Expansion, Numerical Solution毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
打靶法(含Matlab程序)
西京学数学软件实验任务书动方向控制减速的推力,主要的控制量只有一个减速推力,减速还会消耗燃料让登月器的质量减小。
所以在极坐标下系统的状态就是x‘=[质量m,角度theta,高度r,角速度omega,径速度v]这五个量,输入就是减速力F。
先列微分方程,dx/dt=f(x)+B*F,其中x是5*1的列向量,质量dm/dt=-F/2940,剩下几个翻下极坐标的手册。
把这个动力学模型放到matlab里就能求解了,微分方程数值解用ode45。
第一问F=0,让你求椭圆轨道非常容易。
注意附件1里说15公里的时候速度是s。
算完以后验证一下对不对,对的话就是他了,不对的话说明这个椭圆轨道有进动,到时再说。
(2) 算出轨道就能计算减速力了。
这时候你随便给个常数减速力到方程里飞船八成都能降落,但不是最优解。
想想整个过程,开始降落之前飞船总机械能就那么多,你需要对飞船做负功让机械能减到0。
题目里写发动机喷出翔的相对速度是一定的,直觉告诉我飞船速度快的时候多喷一些速度慢的时候少喷一些,可以提高做负功的效率。
但是多喷也不能超过上限7500N,所以这就是一个带约束优化问题,matlab里边有专用的优化函数,用fmincon就好。
找出最优解以后把过程画出来,看看F可不可以是那5个状态量的线性组合,如果是的话就非常happy,不是的话再说。
三四阶段你可以扯点图像识别,什么二维复利叶分解找平坦区域,怎么一边下降一边根据自身状态调整路径之类的。
五六阶段还真不知道说什么。
一二阶段肯定是重点啦(3) 误差分析其实还挺难的。
可能的误差来源是地球的引力,月亮绕地球向心加速度,太阳的引力(可能会很小),对自身速度、角度的测量误差(比如你测出自身当前速度100m/s但实际上是105m/s),控制的时候F大小以及角度的误差(比如你想朝正前方向喷2000N但实际上偏了2度而且F=2010N之类)。
上一问已经求出了最优控制策略和飞船路线,把这些扰动加进去以后算出新的路线减掉理想路线求偏差,然后随便用个卡尔曼滤波器把误差给校正All for Joy2014/9/13 11:14:38老师的思路,求大神解答给我一份呀实验二十七实验报告实验名称:微分方程组边值问题数值算法(打靶法,有限差分法)。
二阶常微分方程边值问题数值方法
其中 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]
(完整版)二阶常微分方程边值问题的数值解法毕业论文
二阶常微分方程边值问题的数值解法摘要求解微分方程数值解的方法是多种多样的,它本身已形成一个独立的研究方向,其要点是对微分方程定解问题进行离散化.本文以研究二阶常微分方程边值问题的数值解法为目标,综合所学相关知识和二阶常微分方程的相关理论,通过对此类方程的数值解法的研究,系统的复习并进一步加深对二阶常微分方成的数值解法的理解,为下一步更加深入的学习和研究奠定基础.对于二阶常微分方程的边值问题,我们总结了两种常用的数值方法:打靶法和有限差分法.在本文中我们主要探讨关于有限差分法的数值解法.构造差分格式主要有两种途径:基于数值积分的构造方法和基于Taylor展开的构造方法.后一种更为灵活,它在构造差分格式的同时还可以得到关于截断误差的估计.在本文中对差分方法列出了详细的计算步骤和Matlab程序代码,通过具体的算例对这种方法的优缺点进行了细致的比较.在第一章中,本文将系统地介绍二阶常微分方程和差分法的一些背景材料.在第二章中,本文将通过Taylor展开分别求得二阶常微分方程边值问题数值解的差分格式.在第三章中,在第二章的基础上利用Matlab求解具体算例,并进行误差分析.关键词:常微分方程,边值问题,差分法,Taylor展开,数值解The Numerical Solutions ofSecond-Order Ordinary Differential Equations with the Boundary Value ProblemsABSTRACTThe numerical solutions for solving differential equations are various. It formed an independent research branch. The key point is the discretization of the definite solution problems of differential equations. The goal of this paper is the numerical methods for solving second-order ordinary differential equations with the boundary value problems. This paper introduces the mathematics knowledge with the theory of finite difference. Through solving the problems, reviewing what have been learned systematically and understanding the ideas and methods of the finite difference method in a deeper layer, we can establish a foundation for the future learning.For the second-order ordinary differential equations with the boundary value problems, we review two kinds of numerical methods commonly used for linear boundary value problems, i.e. shooting method and finite difference method. There are mainly two ways to create these finite difference methods: i.e. Taylor series expansion method and Numerical Integration. The later one is more flexible, because at the same time it can get the estimates of the truncation errors. We give the exact calculating steps and Matlab codes. Moreover, we compare the advantages and disadvantages in detail of these two methods through a specific numerical example. In the first chapter, we will introduce some backgrounds of the ordinary differential equations and the difference method. In the second chapter, we will obtain difference schemes of the numerical solutions of the Second-Order ordinary differential equations with the boundary value problems through the Taylor expansion. In the third chapter, we using Matlab tosolve the specific examples on the basis of the second chapter, and analyzing the errors.KEY WORDS: Ordinary Differential Equations, Boundary Value Problems, Finite Difference Method, Taylor Expansion, Numerical Solution毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
二阶非线性常微分方程的打靶法matlab实现
二阶非线性常微分方程的打靶法matlab实现二阶非线性常微分方程的打靶法1.问题:试用打靶法求二阶非线性常微分方程亮点边值的数值解:要求用Matlab 编程计算,请给出一些例子,验证你的算法与程序的正确性。
2.打靶法分析:非线性打靶法:非线性打靶法的基本原理是将两点边值问题(1)转化为下面形式的初值问题令z = y ′,将上述二阶方程降为一阶方程组n=length(xvalue)s0=a-0.01;%选取适当的s的初值x0=[alfa,s0];%迭代初值flag=0;%用于判断精度y0=rk4(ff,a,x0,h,a,b);if abs(y0(1,n)-beta)<=epsflag=1;y1=y0;elses1=s0+1;x0=[alfa,s1];y1=rk4(ff,a,x0,h,a,b);if abs(y1(1,n)-beta)<=epsflag=1;endendif flag~=1while abs(y1(1,n)-beta)>epss2=s1-(y1(1,n)-beta)*(s1-s0)/(y1(1,n)-y0( 1,n));x0=[alfa,s2];y2=rk4(ff,a,x0,h,a,b);s0=s1;s1=s2;y0=y1;y1=y2;endendxvalue=a:h:b;yvalue=y1(1,:);ys=[xvalue',yvalue'];function x=rk4(f,t0,x0,h,a,b)%rung-kuta法求每个点的近似值(参考大作业一)t=a:h:b;%迭代区间m=length(t);%区间长度t(1)=t0;x(:,1)=x0;%迭代初值for i=1:m-1L1=f(t(i),x(:,i));L2=f(t(i)+h/2,x(:,i)'+(h/2)*L1);L3=f(t(i)+h/2,x(:,i)'+(h/2)*L2);L4=f(t(i)+h,x(:,i)'+h*L3);x(:,i+1)=x(:,i)'+(h/6)*(L1+2*L2+2*L3+L4); end4.举例求二阶非线性方程的边值问题:在matlab 控制台中输入:f=@(x,y,z)(x^2+z*x^2);x0l=0;x0u=2*exp(-1);alfa=0;beta=2;h=0.01dbf(f,x0l,x0u,y0l,y0u,h,1e-6); >> y=ans(:,2);x=ans(:,1);>> plot(x,y,'-r')>>结果:再输入:>> m=0:0.01:2;>> n=m.*exp(-1/2*m);>> plot(n,m)>> plot(x,y,'-r',n,m,'-b')5.结论:根据得到的图像,可以看到在x 的初值一起末值也就是α和β两点做到了较好的逼近,但是中间部分的逼近不是很理想。
打靶法
打靶法常微分方程边值问题数值解法- 正文用某种离散化数值步骤求出常微分方程边值问题在离散点上的近似解的方法。
各种实际问题导出不同类型的边值问题。
较简单的有二阶常微分方程两点边值问题:求函数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转向③继续计算直到满意为止。
特别地,若微分方程是线性的,则打靶法变成线性组合法,即根据常微分方程理论适当选取初值可得到一组线性独立解,利用它们的线性组合导出边值问题的解。
第十一章 常微分方程边值问题的数值解法
第十一章 常微分方程边值问题的数值解法工程技术与科学实验中提出的大量问题是常微分方程边值问题.本章将研究常微分方程边值问题的数值求解方法.主要介绍三种边界条件下的定解问题和两大类求解边值问题的数值方法,打靶法算法和有限差分方法.11.1 引言在很多实际问题中都会遇到求解常微分方程边值问题. 考虑如下形式的二阶常微分方程),,(y y x f y '='', b x a <<, (11.1.1)在如下三种边界条件下的定解问题: 第一种边界条件:α=)(a y , β=)(b y (11.1.2)第二种边界条件:α=')(a y , β=')(b y (11.1.2)第三种边界条件:⎩⎨⎧=-'=-'1010)()()()(b b y b y a a y a y βα, (11.1.13) 其中0 0, ,00000>+≥≥b a b a .常微分方程边值问题有很多不同解法, 本书仅介绍打靶方法和有限差分方法.11.2 打靶法对于二阶非线性边值问题()()().,,βα==≤≤'=''b y a y b x a y y x f y ,,, (11.2.1)打靶法近似于使用初值求解的情况. 我们需要利用一个如下形式问题初值解的序列:()()v a w a w b x a w w x f w ='=≤≤'='')(,,,,,α, (11.2.2)引进参数v 以近似原边界值问题的解.选择参数k v v =,以使:()()β==∞→b y v b w k k ,lim , (11.2.3)其中),(k v x w 定义为初值问题(11.2.2)在k v v =时的解,同时()x y 定义为边值问题(11.2.1)的解.首先定义参数0v ,沿着如下初值问题解的曲线,可以求出点),(αa 对应的初始正视图()()v a w a w b x a w w x f w ='=≤≤'='')(,,,,,α. (11.2.4)如果),(0v b w 不严格收敛于β,那么我们选择1v 等值以修正近似值,直到),(0v b w 严格逼近β.为了取得合适的参数k v ,现在假定边值问题(11.2.1)有唯一解,如果),(v x w 定义为初始问题(11.2.2)的解,那么v 可由下式确定:0),(=-βv b w . (11.2.5)由于这是一个非线性方程,我们可以利用Newton 法求解.首先选择初始值0v ,然后由下式生成序列),)(()),((111-----=k k k k v b dvdw v b w v v β,此处),(),)((11--=k k v b dv dwv b dv dw , (11.2.6)同时要求求得),)((1-k v b dvdw,因为),(v b w 的表达式未知,所以求解这个有一点难度;我们只能得到这么一系列的值。
数值分析6-3
§6.4 边值问题的打靶法(shooting method )和差分法(finite-difference method )在前面几节中,我们着重介绍了一阶微分方程的初值问题,讨论了解决这类问题的显式、隐式方法及其算法.然后,将这一类方法推广到了一阶微分方程组的初值问题,并指出对高阶微分方程可以通过降阶的方法化为方程组的情形求解.最后,我们着重讨论了微分方程(组)的刚性问题,并给出了刚性方程组的数值求解方法.本节我们将讨论在理论和应用上都有重要意义的另一类微分方程,即所谓的边值问题.二阶微分方程的两点边值问题的一般形式为⎩⎨⎧==∈'=''βα)(,)(],[),,(b y a y b a x y y x f y (1)当f 关于y y ',是线性时,称为线性两点边值问题⎩⎨⎧==∈=+'+''βα)(,)(],[)()()(b y a y b a x x f y x q y x p y (2)其中,0)(≤x q ,],[,,b a C f q p ∈.关于问题(1)的解的存在唯一,我们给出如下定理 定理:假设两点边值问题(1)中函数f 在集 D ={}+∞<'<∞-+∞<<∞-≤≤'y y b x a y y x ,,),,(上连续,并且f 关于y y ',的偏导数(partial derivatives )y f ,y f '在D 也连续,且满足 (1) 对所有),,(y y x '∈D ,有0),,(>'y y x f y(2) 对所有),,(y y x '∈D 存在常数M ,使M y y x f y ≤''),,( 则问题(1)的解存在唯一.1Exp 考虑两点边值问题0sin ='++''-y ey xy,21≤≤x ,0)2()1(==y y因),,(y y x f '=y e xy'---sin0),,(>='-xyy xey y x fy y y x f y '-=''cos ),,(⇒),,(y y x f y ''=1cos ≤'-y因而两点边值问题有唯一解.对线性两点边值问题(2)仅需将上面定理中的条件改成)(x p ,)(x q ,)(x f 在区间],[b a 上连续,且0)(≤x q ,则边值问题(2)也存在唯一解.注意:这里给出的边界条件称为第一类边界条件,当然我们可以给出第二、第三边界条件,但这里仅讨论第一类边界条件,介绍线性及非线性打靶法.一、打靶法 1.线性打靶法对于线性边值问题(2)利用第二章定理2.2.7可知:假设L 是一个微分算子使 Ly =y x q y x p y )()(+'+'' 则可得到两个微分方程)(1x f Ly =,α=)(1a y ,0)(1='a y ⇔)()()(111x f y x q y x p y =+'+'',α=)(1a y ,0)(1='a y (3) 02=Ly ,0)(2=a y ,1)(2='a y ⇔0)()(222=+'+''y x q y x p y ,0)(2=a y ,1)(2='a y (4) 方程(3),(4)是两个二阶初值问题.假设1y 是问题(3)的解,2y 是问题(4)的解,且)(2b y ≠0,则线性边值问题(2)的解为)(x y =)(1x y +)()()(221x y b y b y -β (5)称利用上述方法求解两点边值问题(2)的数值方法为线性打靶法.在数值上,我们可以将初值问题(3)、(4)化为两个线性方程组用经典的K R -算法分别计算1y 及2y ,然后,用(5)得到线性边值问题(2)的解.在几何上上述过程可以描述为)x)(x y )(1x yαa b2Exp 求解两点边值问题22)sin(ln 22xx y x y x y =-'+'',21≤≤x ,1)1(=y ,2)2(=y 解:问题的精确解为y =)cos(ln 101)sin(ln 103221x x xc x c --+ 其中,1c =≈--)]2cos(ln 4)2sin(ln 128[701-0.0392******* 2c =11011c -≈1.1392070132首先将方程组化为两个初值问题21211)sin(ln 22x x y x y x y =-'+'',1)1(1=y ,0)1(1='y 及 0222222=-'+''y x y x y ,0)1(2=y ,1)1(2='y 如果令:11y z '=,22y z '=则求解上述两个初值问题等价于求解如下两个微分方程组 方程组Ⅰ:⎪⎩⎪⎨⎧=++-='=='0)1()sin(ln 221)1(12121111z x x y x z x z y z y方程组Ⅱ:⎪⎩⎪⎨⎧=+-='=='1)1(220)1(22222222z y x z x z y z y用步长为1.0=h 的经典K R -算法得到结果如下:1、 非线性打靶法非线性打靶法的基本原理是将两点边值问题(9.3.2)转化为下面形式的初值问题 ⎩⎨⎧='=∈'=''ks a y a y b a x y y x f y )(,)(],[),,(α (9.3.9)令y z '=,将上述二阶方程降为一阶方程组⎩⎨⎧=='=='k s a z z y x f z a y zy )(),,,()(α (9.3.10)这里k s 为y 在a 处的斜率.问题转化为求合适的k s 使上述方程组初值问题的解满足原边值问题的右端边界条件β=)(b y ,从而得到边值问题的解.因此把一个两点边值问题的数值解转化成一阶方程组初值问题的数值解.关于方程组初值问题的所有数值方法在这里都可以使用,问题的关键是如何去寻找合适的初始斜率的试探值.假定相应于k s 的初值问题(9.3.10)的解为),(k s x y ,它是k s 的隐函数,且假定),(k s x y 随k s 是连续变化的,记为),(s x y ,这样我们要找的k s 就是下面非线性方程的根β=),(s b y可以用前面的迭代法去求上述方程的根,如用割线法 )),((),(),(121211β----=------k k k k k k k s b y s b y s b y s s s s ,3,2=k (9.3.11)先给定两个初始斜率10,s s ,分别作为初值问题(9.3.10)的初始条件.用一阶方程组的数值方法去求解.分别得到区间右端点上的函数值),(0s b y 和),(1s b y .若εβ<-),(0s b y 或εβ<-),(1s b y ,则),(0s b y 或),(1s b y 就是两点边值问题的解.否则用割线法(9.3.11)求2s ,得到),(2s b y ,判别是否满足εβ<-),(2s b y .如此重复,直到某个k s 满足εβ<-),(k s b y .得到的)(i x y 和)(i x z y ='就是两点边值问题的解和它的一阶导数值.上述方法可简单的叙述为:选一次函数的初始斜率k s ,数值求解一次初值问题得到右端函数的计算值),(k s b y ,看它是否与右边界条件)(b y 很接近.这就好比打靶,k s 为子弹发射斜率, )(b y 为靶心,故称为打靶法.一、求解常微分方程的主要Matlab 命令初值问题:命令 含义45ode 4、5阶K R -格式 23ode 2、3阶K R -格式 113ode 多步Adams 算法t ode 23 适度刚性问题梯形算法s ode 15 刚性方程组多步Gear 算法s ode 23 刚性方程组2阶Rosenbrock 算法 bvpinit 边值问题预估解c bvp 4 边值问题解法 deval 微分方程解的求值常微分方程初值问题的Matlab 命令具有相同的格式,下面以最常用的45ode 为例说明用法。
(完整版)常微分方程组(边值)
常微分方程组边值问题解法打靶法Shooting Method (shooting.m )%打靶法求常微分方程的边值问题function [x,a,b,n]=shooting(fun,x0,xn,eps)if nargin<3eps=1e-3;endx1=x0+rand;[a,b]=ode45(fun,[0,10],[0,x0]');c0=b(length(b),1);[a,b]=ode45(fun,[0,10],[0,x1]');c1=b(length(b),1);x2=x1-(c1-xn)*(x1-x0)/(c1-c0);n=1;while (norm(c1-xn)>=eps & norm(x2-x1)>=eps)x0=x1;x1=x2;[a,b]=ode45(fun,[0,10],[0,x0]');c0=b(length(b),1);[a,b]=ode45(fun,[0,10],[0,x1]');c1=b(length(b),1)x2=x1-(c1-xn)*(x1-x0)/(c1-c0);n=n+1;endx=x2;应用打靶法求解下列边值问题:()()⎪⎪⎩⎪⎪⎨⎧==-=010004822y y y dxy d解:将其转化为常微分方程组的初值问题()⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧==-==t dx dy y y y dx dy y dx dy x 0011221048命令:x0=[0:0.1:10];y0=32*((cos(5)-1)/sin(5)*sin(x0/2)-cos(x0/2)+1); 真实解plot(x0,y0,'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))函数:(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]=shooting('odebvp',10,0,1e-3)计算结果:(eps=0.001)t=11.9524plot(x,y(:,1))x0=[0:1:10];y0=32*((cos(5)-1)/sin(5)*sin(x0/2)-cos(x0/2)+1); hold onplot(x0,y0,’o’)有限差分法Finite Difference Methods FDM (difference.m )同上例:4822y dx y d -=⇒482211i i i i y h y y y -=+--+ 2121842h y y h y i i i =+⎪⎪⎭⎫ ⎝⎛--+- 若划分为10个区间,则: ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛----08880842114211421142222212212222h h h h y y y y h h h h n n M M O O O函数:(difference.m )%有限差分法求常微分方程的边值问题function [x,y]=difference(x0,xn,y0,yn,n)h=(xn-x0)/n;a=eye(n-1)*(-(2-h^2/4));for i=1:n-2a(i,i+1)=1;a(i+1,i)=1;endb=ones(n-1,1)*8*h^2;b(1)=b(1)-0;b(n-1)=b(n-1)-0;yy=a\b;x(1)=x0;y(1)=y0;for i=2:nx(i)=x0+(i-1)*h;y(i)=yy(i-1);endx(n)=xn;y(n)=yn;命令:[x,y]=difference(0,10,0,0,100);计算结果:x0=[0:0.1:10];y0=32*((cos(5)-1)/sin(5)*sin(x0/2)-cos(x0/2)+1); 真实解plot(x0,y0,'r')hold on[x,y]=difference(0,10,0,0,5);plot(x,y,’.’)[x,y]=difference(0,10,0,0,10);plot(x,y,’--’)[x,y]=difference(0,10,0,0,50);plot(x,y,’-.’)正交配置法Orthogonal Collocatioin Methods CM构造正交矩阵函数(collmatrix.m)%正交配置矩阵(均用矩阵法求对称性与非对称性正交配置矩阵)function [am,bm,wm,an,bn,wn]=collmatrix(a,m,fm,n,fn)x0=symm(a,m,fm); %a为形状因子;m为零点数;fm为对称的权函数(0为权函数1,非0为权函数1-x^2)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)^(2*i-2);cm(j,i)=(2*i-2)*xm(j)^(2*i-3);dm(j,i)=(2*i-2)*(2*i-3+(a-1))*xm(j)^(2*i-3+(a-1)-1-(a-1));endfmm(j)=1/(2*j-2+a);endam=cm*inv(qm);bm=dm*inv(qm);wm=fmm*inv(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)=xn(j)^(i-1);if j==0 | i==1cn(j,i)=0;elsecn(j,i)=(i-1)*xn(j)^(i-2);endif j==0 | i==1 | i==2dn(j,i)=0;elsedn(j,i)=(i-2)*(i-1)*xn(j)^(i-3);endendfnn(j)=1/j;endan=cn*inv(qn);bn=dn*inv(qn);wn=fnn*inv(qn);%正交多项式求根(适用于对称问题)function p=symm(a,m,fm) %a为形状因子,m为配置点数,fm为权函数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);%权函数为1elsec2=c2*(m+a/2+j+1);%权函数为1-x^2endc3=c3*(a/2+j);c4=c4*(1+j);endp(m+1-i)=c1*c2/c4/c3;endp(m+1)=1;%为多项式系数向量,求出根后对对称问题还应开方才是零点p=sqrt(roots(p));%正交多项式求根(适用于非对称性问题)function p=unsymm(n,fn)if fn==0r(1)=(-1)^n*n*(n+1);%权函数为1elser(1)=(-1)^n*n*(n+2);%权函数为1-xendfor i=1:n-1if fn==0r(i+1)=(n-i)*(i+n+1)*r(i)/(i+1)/(i+1);%权函数为1elser(i+1)=(n-i)*(i+n+2)*r(i)/(i+1)/(i+1);%权函数为1-xendendfor j=1:np(n+1-j)=(-1)^(j+1)*r(j);endp(n+1)=(-1)^(n+1);p=roots(p);应用正交配置法求解以下等温球形催化剂颗粒内反应物浓度分布,其浓度分布的数学模型为:⎪⎪⎪⎩⎪⎪⎪⎨⎧=====⎪⎭⎫ ⎝⎛S C C r dr dC r R C dr dC r dr d r ,10,0361222 解:(1)标准化令R r x /=,S C C y /=代入微分方程及边界条件得:⎪⎪⎪⎩⎪⎪⎪⎨⎧=====⎪⎭⎫ ⎝⎛1,10,036122y x dx dy x y dx dy x dx d x(2)离散化03611=-∑+=j N i i ji y y B1,2,1+=N j Λ(3)转化为代数方程组(以3=N 为例)⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----000036363636432144434241343332312423222114131211y y y y B B B B B B B B B B B B B B B B 因为141==+y y N ,所以整理上式得:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+----=⎥⎥⎦⎤⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---3636363644342414321434241333231232221131211B B B B y y y B B B B B B B B B B B B 本例中的代数方程组为线性方程组,可采用线性方程组的求解方法;若为非线性方程组则采用相应的方法求解。
打靶法在常微分方程边值问题中的一些应用
应用, 见文献[7。打靶法是解微分方程的数值方 4】 —
法,其基本思想是将微分方程的边值问题转化为初 值 问题来求解, 其特 点是精度高, 程序 简单, 实用性 强。16 年 P .ayLFS a p ePEWafat 98 . B i 、. hm i 、.. l n B l . n t n 结合 常微分方程初值 问题 的基本理论 和打靶法, 研
Ke wo d : Or ia fee c E u t n Bo n a Vau P o lm ; xse c ; Un q e es S o t g y rs dn r Di rn e q ai ; y f o udr y le r be E itn e iu n s ; h oi n
( 5 ) 如果存在常数 N 0 > 使得:
本文试图 研究更广泛的非线性常微分方程两点
边值问题 U f , ( , ( )t ab ”= ( u t u t ,∈(,) t ) ) () 2
I( , I , ( ,e【b t P N vt p a] f, ) s Y , ) ,×R Y
打 靶 法 在 常 微 分 方
程
安 乐
An e L
边
值 问 Βιβλιοθήκη ( 天水师范学院数学与统计学 院, 甘肃 天水 7 10 ) 401
(olg f te ts n ttsTa su omaUnvri , as i su 4 1 C l eoMa mai dSai , i h i r l iesy G nu a h i 10) e h ca c n N t T n 7 0
l( , I N Vt, ∈a】 2 t P , ( P 【b f, ) Y , ) ,×R Y
.) ( 至少有一个解 。 3
二阶非线性微分方程组的解法
二阶非线性微分方程组的解法微分方程是数学中的一门重要分支,广泛应用于物理学、生物学、经济学等领域。
其中,二阶非线性微分方程组是一类常见的微分方程,在实际应用中也具有重要的意义。
本文将介绍二阶非线性微分方程组的解法。
一、基本概念与知识首先,我们需要了解一些基本概念和知识。
二阶非线性微分方程组一般形式为:$$\begin{cases}y''=f(x,y,y')\\z''=g(x,y,z,z')\end{cases}$$其中,$y$, $z$ 分别是自变量 $x$ 的函数,$f$, $g$ 是已知函数,$'$ 表示对自变量求导。
这类微分方程的解法不像线性微分方程组那样简单,需要运用一些特殊的技巧。
二、变系数法变系数法是解决二阶非线性微分方程组的一种有效方法。
其基本思想是将原方程组中的一个方程看作另一个方程的辅助方程,从而将原方程组化为一个二阶非齐次线性微分方程,然后再利用常规的线性微分方程的求解方法来解决。
具体步骤如下:(1) 假设 $z$ 是 $y$ 的辅助方程,即 $z''=g(x,y,z,z')$。
(2) 将 $z''$ 在 $y''$ 的方程中代入,得到二阶非齐次线性微分方程:$$y''-f(x,y,y')+\frac{dg(x,y,z,z')}{dz}=\frac{d^2 z}{dx^2}+\frac{d g(x,y,z,z')}{dy}\frac{dy}{dx}+\frac{dg(x,y,z,z')}{dz}\frac{dz}{dx}$$(3) 求解该方程。
(4) 由 $z''=g(x,y,z,z')$ 得到 $z$。
注意事项:在应用变系数法的过程中,需要注意以下几点:(1) 辅助方程的选取需要灵活,一般选取在求导和代入方便的方程作为辅助方程。
二阶常微分方程边值问题的数值解法
摘要本文主要研究二阶常微分方程边值问题的数值解法。
对线性边值问题,我们总结了两类常用的数值方法,即打靶法和有限差分方法,对每种方法都列出了详细的计算步骤和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 -第三章二阶非线性微分方程........................................................ 错误!未定义书签。
微分方程的边值问题
微分方程边值问题的数值方法本部分内容只介绍二阶常微分方程两点边值问题的的打靶法和差分法。
二阶常微分方程为(,,),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)的解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环第二步
A
7
∆ 得到F函数的导数 ∆ u0=[0,1]; ∆ u1=NRK4(g,a,b,h,u0,y0); ∆ 通过偏导数求得的F’。
循环第三步
A
8
Байду номын сангаас 循环第四步
∆ 用牛顿迭代算出新的初值 ∆ s0=s0-constant/u1(n,1); 之后把所有的步奏放进一个while循环,跳出的条件即是constant小
于给定的误差
A
9
∆ 微分方程
∆ 得到图像 ∆ 可以看出精度还是蛮高的
数值实验
A
10
与matlab自带函数的比较
∆ 分别用Bvp4c 函数和打靶法解微分方程:
∆ 得到结论:图像上的拟合度差不多,但是具体做数值误差之后Bvp4c 函数的精确度比较高。Bvp4c大概为1.0e-10,打靶法只有1.0e-4
由此得到F'(γk)=v1(b,γk)
A
3
(4)用牛顿迭代计算γk+1,即
(5)置k+1→k,转(1)直到误差在范围内。 综上,实现了打靶法对非线性方程的拟合。
A
4
∆ 接下来是每一步的代码: ∆ 程序开头各变量的设置 ∆ function ys=ndbf(f,g,a,b,alfa,beta,n,eps,s0) ∆ %f 为二阶导数,y''=f(x,y,y'),g 为f 对y 求偏导后的 ∆ %(a,b)为自变量迭代区间 ∆ %alfa,beta 为给定的边值条件 ∆ %eps 题目规定的精度 ∆ %n 为迭代次数 ∆ %选取适当的s0 的初值
二阶非线性常微分方程的 打靶法
A
1
计算思路
主要分为以下五步:
给定容许误差ε,迭代初始值γ 做:
1
,对k=1,2,...
(1)之F用(γ四后k)阶=u取R1u(nbg,其eγ-Kk在u)t-tβaγ方k法的求解值初值,问,从得而得出到u1
(2)若|F(γk)|<ε,则u1 即为所求,跳出循环。
A
2
否则: (3)用四阶Runge-Kutta 方法求解初值问题
A
5
循环第一步
∆ x0=[alfa,s0]; ∆ %选取合适的迭代初值 ∆ y0=RK4(f,a,b,h,x0); ∆ %龙格库塔算出u1(γk) ∆ constant=y0(n,1)-beta; ∆ 这里的y0(n,1)即是u1(γk,b),constant即为F(γk)
A
6
∆ 检验误差以跳出 ∆ if abs(constant)<eps%检验精度是否合题意 ∆ break;
A
13
∆ 谢谢观赏,祝大家期末满绩!
A
14
A
11
再改变迭代方法进行比较
∆ 用二分法迭代γk ∆ 此时不用再求F的导数,所以也不用输入偏导数g ∆ 同样解上面的微分方程:
∆ 图像的拟合度也比较高。 ∆ 数值误差方面和牛顿迭代在同一 数量级,所以相差不大。
A
12
算法总结
∆ 牛顿打靶法精度比较高 ∆ 但是对于初值的选取要求很高,需要在精确值附近 ∆ 而且在开头需要手动输入偏导数