胡海岩 非线性动力学 第二章

合集下载

非线性动力学入门-西安交通大学教师个人主页

非线性动力学入门-西安交通大学教师个人主页

. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
另一方面梁的轴向应变的表达式也会因变形大小的不同而采用不同的表达式比如小变形时应变而当考虑大变形时可能采用的应变表达式就是进而得到的梁的振动方程将会是一个含有高度非线性项的偏微分方程组
非线性动力学入门
张新华
西安交通大学 工程力学系 2011 年 07 月
前 言
─1687 年,牛顿(Isaac Newton, 1643 ~ 1727)发表了《自然哲学之数学原 理》(Mathematical Principles of Natural Philosophy),标志着经典力学(亦即牛 顿力学)的正式诞生。牛顿力学主要研究自由质点系的宏观运动规律。 ─1788 年,拉格朗日(Joseph Louis Lagrange, 1736 ~ 1813)发表了分析力 学教程(Analytical Mechanics),标志着拉格朗日力学的诞生。Lagrange 力学属 于分析力学的主要内容之一,在位形空间中研究带有约束的质点系动力学。 ─1833 年,哈密尔顿(William Rowen Hamilton, 1805 ~ 1865)对 Lagrange 力学进行了改造,引进了相空间(2n 维空间),对系统内在的对称性(辛对称, Symplectic)进行了刻画。狭义上的哈密尔顿力学只适用于保守系统,而广义 的哈密尔顿力学在适用于非保守系统。哈密尔顿力学也属于分析力学的主要 组成部分。在此后发展起来的量子力学中 Hamilton 力学发挥着巨大的作用。 目前在天体力学、计算 Hamilton 力学,量子力学,甚至弹性力学(即所谓的 辛弹性力学)中哈密尔顿力学依然发挥着重要作用。 ─1927 年,Birkhoff(George David Birkhoff, 1844 ~ 1944)发表了“动力系 统”(Dynamical Systems),标志着 Birkhoff 动力学的正式问世。Birkhoff 动力 学建立了研究非完整力学的框架。 ─1892 ~ 1899, 彭加莱(Henri Poincaré, 1854 ~ 1912)发表了三卷本的“天 体力学中的新方法”(New Methods of Celestial Mechanics),系统性地提出了 研究动力学系统的定性方法,即几何方法。经典力学的目标之一就是设法求 得系统的解析解,而 Poincaré意识到对于大多数非线性系统而言,求其解析 解是不可能的,而必须发展新的研究方法。他超越了他的时代,极富远见地 预测到了非线性系统混沌现象(系统的解对初始条件具有极端敏感依赖性)的 存在。更为重要的是,Poincaré开创了研究非线性动力系统的几何方法,当之 无愧地被誉为非线性科学之父,其影响是划时代的。 ─1892 年,李亚普诺夫(Aleksandr Mikhailovich Lyapunov, 1857 ~ 1918)在 他的博士论文“运动稳定性的一般问题”(General problem of the stability of motion )中,系统地探讨了非线性动力学系统的稳定性问题。他提出了两种研 究稳定性的方法:李亚普诺夫第一方法(间接方法)和李亚普诺夫第二方法(直 接方法)。他从代数角度出发,对动力学系统的研究开创了一个崭新的领域。 彭加莱与李亚普诺夫,前者从几何角度,后者从代数角度,开拓了非线 性科学的研究疆域和研究手段。 ─1963 年,Lorenz(Edward Norton Lorenz, 1917 ~ 2008)发表了“确定性 非周期流”(Deterministic Nonperiodic Flow)的论文,认为大气系统的性态对 初值极为敏感,从而导致准确的长期天气预报是不可能的。该文标志着人类 首次借助于计算机发现了混沌(Chaos)现象的存在。 ─1757 年,欧拉(Leonhard Euler, 1707 ~ 1783)发表了压杆稳定性的论 文,首次探讨了力学系统的分岔现象。作为分岔理论重要分支的突变理 论(Catastrophe Theory)则主要由法国数学家托姆(René Thom, 1923 ~ 2002)于 上个世纪 60 年代创立,由齐曼(Christopher Zeeman,1925 ~)在 70 年代大力 推广普及。 ─1834 年,英国的罗素(John Scott Russell, 1808 ~ 1882)骑着马在 Union 运河上散步时,发现了现在称之为孤立波(又称作孤波,Solitary wave)的 i

第二章 非线性方程(组)的数值解法

第二章  非线性方程(组)的数值解法

2.1 方程(组)的根及其MATLAB 命令2.1.2 求解方程(组)的solve 命令求方程f (x )=q (x )的根可以用MATLAB 命令:>> x=solve('方程f(x)=q(x)','待求符号变量x ')求方程组f i (x 1,…,x n )=q i (x 1,…,x n ) (i =1,2,…,n )的根可以用MATLAB 命令:>>E1=sym('方程f1(x1,…,xn)=q1(x1,…,xn)');…………………………………………………….En=sym('方程fn(x1,…,xn)=qn(x1,…,xn)');[x1,x2,…,xn]=solve(E1,E2,…,En, x1,…,xn)例2.1.1:解方程9381731x x x +-=-。

解:>>x=solve('8*x^9+17*x^3-3*x=-1')例2.1.2:解下列方程,并且求根的近似值,要求精度为1410-。

3(1)sin(cos(2))0;(2)sin(cos 4)5tan(3)0;(3)sin(cos )tan 0.x a a a x b a =++=+=解:在MATLAB 工作窗口输入如下程序:>>x1=solve ('sin(cos(2*x^3))=0','x ')a1= solve ('a*sin(cos(4))+5*tan(a+3)=0','a ')x2=solve ('a*sin(cos(x))+b*tan(a)=0','x ')例2.1.3:解超越方程组40,2 1.xx xy x ⎧-=⎨+=⎩解:在MATLAB 工作窗口输入如下程序:>>E1=sym('x^x-4=0');E2=sym('2*x*y+x=1');[x,y]=solve(E1,E2)X1=double(x),y1=double(y)例2.1.4:解非线性方程组2,21,(),4.x y z u xy yu x y z u xu yz ++=⎧⎪-=-⎪⎨+-=⎪⎪+=⎩解:在MATLAB 工作窗口输入如下程序:>>E1=sym('x+y+z=u ');E2=sym('2*x*z-y*u=-1');E3=sym('(x+y)^2-z=u');E4=sym('x*u+y*z=4');[x,y,z,u]=solve(E1,E2,E3,E4),X1=double(x),y1=double(y),z1=double(z),u1=double(u)例2.1.5:解非线性方程组2220,1,59.x y z y x z z ⎧+=⎪⎪⎪+=⎨⎪+=⎪⎪⎩解:在MATLAB 工作窗口输入如下程序:>>[x,y,z]=solve('(x^2)/z+y^2=0', 'x+y=1', 'z^2+5*z=9')X1=double(x),y1=double(y),z1=double(z)例2.1.6:解非线性方程组2240,33,5sin 0.x xyz yz x z z y ⎧++=⎪+=⎨⎪+-=⎩解::在MATLAB 工作窗口输入如下程序:>>[x,y,z]=solve('x^2+4*x*y+z=0', 'x+3*y*z=3', 'z^2+5*sin(z)=0')例2.1.7:解方程9381731x x x +-=-,并且其导数。

非线性动力学导论讲义(分岔理论)

非线性动力学导论讲义(分岔理论)

非线性动力学导论之四:分岔基本理论简介北京理工大学宇航学院力学系岳宝增第三章非线性动力学系统分岔基本理论一.一般系统平衡解的稳定性(1)二.平衡解的稳定流形与不稳定流形于平面摆的例子可以用来很清楚地解释全局稳定(不稳定)流形的概念;平面摆作为二阶动力学系统和谐振子极为相似。

其动力学方程为:l其中M代表质量,表示摆长,g为重力加速度,c为阻尼系数。

对时间进行尺度变换d可以得到系统的简化方程:d因为是从铅锤位置开始的角度位移,因此该变量具有周期2π;由此可知该系统的相空间为圆柱面。

我们也可以假设,从而从相图上可以观测到系统关于X的周期特性。

为了分析系统的动力学特性,首先确定系统的平衡点并研究其稳定性。

可求出系统的平衡点为:及求出系统的雅可比矩阵为:对应于平衡点有:其特征值为:如果d=0则得到特征值±i;对于较小的d值系统有共轭复根。

对应于平衡点(2kπ+π,0)系统的雅可比矩阵为:其特征值一对符号相反的实数:根据以上讨论可知:平衡点(2kπ+π,0)为鞍点,当d=0时,其对应的特征向量为:及对于较小的的d>0,平衡点(2kπ,0)为吸引子-螺旋旋线);d=0时该类平衡点所对应的是非双曲点。

由于此时系统不受摩擦(阻尼)影响,单摆将做周期运动。

因此,在平衡点附近,系统的动力学特性为:无阻尼d=0 阻尼d>0d=0时,所对应的一类周期运动是单摆做上下摆动;另一类周期运动是单摆由稳定及不稳定流形通过倒立位置位置的运动。

如果单摆几乎刚好处于倒立位置时(不稳定),它将倒回并再次回摆到几乎刚好倒立的位置。

这意味着稳定流形与不稳定流形将有如下图所示的联接:单摆沿逆时针方向穿越倒立位置。

单摆没有穿越倒立位置。

单摆沿顺时针方向穿越倒立位置。

在有阻尼的情形下,实际上所有的初始条件所确定的运动将趋于下垂平衡位置。

例外情形是稳定流形所对应的运动,由趋于倒立位置的所有点组成。

所有初始条件将终止于平衡点三.分岔的基本概念对于一个非线性方程,由于其中参量取值不同,解的形式可能完全不同,即参量取值在某一临界值两侧,解的性质发生本质变化(例如平衡状态或周期运动的数目和稳定性等发生突然变化)。

非线性动力学

非线性动力学

t∈R
x∈ Rn
的解,则显然它是不仅是时间的函数,而且也是初值的函数,即解随着初值的改变而改变, 可以将解记为
φ(t, x0 )
当 x0 是 R n 中的某一点时,φ (t, x0 ) 代表了 1 条解轨线,而
{φ(t, x0 ) x0 ∈ D}
则代表了一族轨线。将φ看成是一个映射,即
φ : R× Rn → Rn
运动行为,它在物理上对应了这样的一个观点:在系统的最初阶段,系统由于外界的初始干 扰,将呈现相当复杂的运动形式,但随着时间的延续,运动将进入平稳状态,而这种平稳状 态体现了动态系统的本质结构。
微分方程解的最终形态通常有: (1) 平衡点 (2) 周期解 (3) 拟周期解 (4) 混沌解
6.4.1 平衡点
图 6-7 所示是 2 维线性系统的相轨线,坐标原点是系统的平衡点,图 6-7a、b 中的平衡 点是稳定的,称为稳定结点,图 6-7c 中的平衡点是不稳定的,称为鞍点。
图 6-7 2 维线性系统的相轨线
6.5.2 任意解的稳定性
设 x = ψ (t)是微分方程 x& = F(t, x)
第 6 章 非线性动力学
-0.5
-1
-1.5
0.5
1
1.5
图 6-2 例 1 相图
例2
如图 6-3 所示是微分方程
&y& + 0.2 y& + y = 0
在相平面 (x1, x2 ) ,
x1 = y
x2 = y&
上的轨线图,平衡点为 (0,0),当 t → ∞ 时,解轨线趋于平衡点。
0.6 0.4 0.2
-0.6
-0.4
-0.2 -0.2

第二章 非线性方程求根

第二章 非线性方程求根

第四章 非线性方程与非线性方程组的迭代解法 在中学时,我们很熟悉一次、二次代数方程以及某些特殊的高次方程或超越方程的解法。这些方法都是代数解法,也是精确法。但在实际中,有许多方程问题无法求出公式解。例如超越方程 0tgxx

0sin8889.4tg25.0xx 看起来很简单,却不容易求得精确解。至于解三次、四次代数方程,尽管存在着求解公式,却不实用,而对一般的五次或五次以上的代数方程,根本没有求根公式。另一方面,在实际应用中,只要能获得具有预先给定的误差限内的近似值就可以了。因此,需要引进能够达到一定精度要求的求方程近似值的方法。它包括以下三方面内容: 1.根的存在性。方程有没有根?如果有根,有几个根? 2.这些根大致在哪里?如何把根隔离开来? 3.根的精确化 具体求根通常分为两步走,第一步判断根是否存在,若存在,确定根的某个初始近似值;第二步,将初始近似值逐步加工成满足精度要求的结果。 求初始近似值,即确定根的大致区间(a, b),使(a, b)内恰有方程的一个根。这个步骤,叫做根的隔离,这样的区间,叫做隔离区间。 隔离根的方法,主要依据以下根的存在定理: 定理1:设函数f (x)在区间[a, b]上连续,如果f (a)  f (b) < 0,则方程f (x) = 0在[a, b]内至少有一实根x*。 具体做法通常有两种: 1.画出)(xfy的略图,从而看出曲线)(xfy与x轴交点的位置。 2.从左端点x = a出发,按某个预先选定的步长h一步一步地向右跨,每跨一步都检验每步起点x0和终点x0 + h的函数值,若 0)()(00hxfxf 那么所求的根x*必在x0与x0+h之间,这里可取x0或x0+h作为根的初始近似。 以下框图描述了这种逐步扫描法: 例1:考察方程 01)(3xxxf 注意到f (0)< 0, f (+)>0,知f (x)至少有一个正的实根。 设从x = 0出发,取h = 0.5为步长向右进行根的扫描,列表记录各个结点上函数值的符号,我们发现,在区间(1, 1.5)内必有实根,因此可取x0 = 1或x0 = 1.5作为根的初始近似值。 x 0 0.5 1.0 1.5 f (x) 的符号 - - - + 在具体运用上述方法时,步长的选择是个关键。若步长h足够小,就可以求得任意精度的根的近似值;但h过小,在区间长度大时,会使计算量增大,h过大,又可能出现漏根的现象。因此,这种根的隔离法,只适用于求根的初始近似。 根的逐步精确化的方法,包括二分法、迭代法、牛顿法和弦截法。我们将在以下几节介绍上述方法,将要着重学习迭代法的思想。

非线性动力系统的两类分岔控制与混沌控制研究

非线性动力系统的两类分岔控制与混沌控制研究
湖南大学 硕士学位论文 非线性动力系统的两类分岔控制与混沌控制研究 姓名:欧阳克俭 申请学位级别:硕士 专业:固体力学 指导教师:唐驾时 20070428
硕士学位论文


分岔控制作为非线性科学中的前沿研究课题,极具挑战性。分岔控制的目的 是对给定的非线性动力系统设计一个控制器,用来改变系统的分岔特性,从而去 掉系统中有害的动力学行为,使之产生人们需要的动力学行为。本文在全面分析 和总结非线性动力系统分岔控制研究现状的基础上,基于非线性动力学、非线性 控制理论、分岔理论等非线性科学的现代分析方法,对倍周期分岔、Hopf 分岔等 进行控制,工作具有较大的理论意义和应用价值。研究内容如下: 第一章对非线性控制理论、分岔控制的研究方法、现状和进展进行综述,介 绍本文的研究目的、研究内容和创新点。 第二章介绍动力学研究的一些基本概念,简述发生鞍结分岔、跨临界分岔、 叉形分岔的充分必要条件,以及这三种静态分岔相互转换的条件;介绍分岔控制 器设计及分析的主要方法。 第三章设计了线性和非线性的状态反馈控制器,对 Logistic 模型的倍周期分 岔进行了控制, 得到了系统在控制前和控制后的分岔图 , 通过设计不同的参数控制 器,改变了动力系统的分岔特性。根据实际应用目的,设计了不同的控制器改变 了存在的分岔点的参数值,并且调整了分岔链的形状。通过优化控制器可以使 Logistic 模型的分岔行为满足一定的要求。 第四章设计了状态反馈控制器和 washout filter 控制器对 van der Pol-Duffing 系统的 Hopf 分岔的极限环幅值进行了控制。通过对控制方程的分析,了解了控 制参数和极限环幅值的影响情况,进而提出控制策略,设计了状态反馈控制器对 系统的 Hopf 分岔进行了控制。 第五章设计了线性反馈控制器对 Lorenz 系统的平衡点和周期轨道进行了控 制,首先利用 Routh-Hurwitz 准则对受控系统进行了稳定性分析,严格证明了达 到控制目标反馈系数的选择原则,最后通过数值计算证明了该方法能够有效地控 制混沌系统到稳定的平衡点同时也能使系统控制到 1P 周期轨道,并且得到了控 制到稳定的 1P 周期轨道的控制参数的选取范围。 本文的主要创新点在于将分岔控制理论应用于非线性振动系统的研究,丰富 了非线性控制理论研究的内容,加深了分岔理论研究的深度。具体表现在:对 Logistic 模型的倍周期分岔进行了反馈控制;首次将 washout filter 技术应用于二 维 van der Pol-Duffing 系统的 Hopf 分岔控制;应用线性反馈控制成功实现了对 Lorenz 系统平衡点的混沌控制和 1P 周期轨道控制。 关键词:分岔控制;非线性动力系统;状态反馈控制;多尺度法; Hopf 分岔

第二章非线性方程(精)

95第二章 非线性方程求根代数方程求根问题是一个古老的数学问题,早在16世纪时找到了三次、四次方程的求根公式。

但直到19世纪才证明5≥n 次的一般代数方程式不能用代数公式求解。

因此需要研究用数值方法求得满足一定精度的代数方程式的近似解。

在工程和科学技术中许多问题常常归结为求解非线性方程式问题,例如在控制系统的设计领域,研究人口增长率等。

本章将介绍几种求解非线性方程近似解的数值方法。

最后一节简单介绍求解非线性方程组的方法。

§1 二 分 法设有非线性方程0)(=x f (1.1)其中,)(x f 为],[b a 上连续函数且设0)()(<b f a f (不妨设方程(1.1)于],[b a 内仅有一个实根)。

求方程(1.1)实根*x 的二分法过程,就是将含根区间],[b a 逐步分半,检查函数值符号的变化,以便确定含根的充分小区间。

二分法叙述如下:记b b a a ==11,。

第1步分半计算)1(=k :将],[11b a 分半,计算中点2/)(111b a x +=及)(1x f ,如果 0)()(11<x f a f则根一定在区间],[],[2211b a x a ≡内,否则根一定在区间],[],[2211b a b x ≡内(若,0)(1=x f 则*=x x 1)。

于是得到长度缩小一半的含根区间],[22b a ,即0)()(22<b f a f ,且)(211122a b a b -=- 第k 步分半计算:重复上述过程,设已完成第1步,...,第1-k 步分半计算得到含根区间96 ],[],[2211b a b a ⊃],[...k k b a ⊃⊃ 且满足:(1)0)()(<k k b f a f , 即],[k k b a x ∈*; (2))(211a b a b k k k -=--;现进行第k 步分半计算: (3) 计算2/)(k k k b a x += 且有 )(212a b a b x x k k k k -=-≤-*(1.2) (4) 确定新的含根区间],[11++k k b a ,即如果0)()(<k k b f a f ,则根一定在],[],[11k k k k x a b a =++内,否则根一定在区间],[],[11k k k k b x b a =++内,且有)(2111a b a b k k k -=-++总之,由上述二分法得到一序列}{k x ,由(1.2),则有 *∞→=x x k k lim可用二分法求方程0)(=x f 实根*x 的近似值到任意指定的精度。

计算方法第2章 非线性方程求根


double f(double x) {return(……); /*计算并返回函数值f(x)*/ }
7
2.3 根的搜索
二、变步长逐步搜索法 用逐步搜索法求根,当h远小于(b-a)时,往往需要很多步搜索。
变步长逐步搜索法是对这一缺陷的改进。
主要步骤为:
① 取较大步长,以较少步数搜索整个有根区间。若一步迈过的子区 间边界处为根,则算法结束;若根在某一步迈过的子区间内,则把这 个更小的子区间作为新的有根区间。 ② 若步骤①得到的有根区间足够小,则取此区间的中点为近似根, 算法结束;否则,缩小步长,以上一步得到的新的更小的有根区间作 为搜索对象,重复执行步骤①。
1 ∴误差限≤ 2 ×10-3,
∴由定理2.1得:
0.301 3 lg(1 0) lg( 1 103 ) 0 ( lg 2 3) 2 1 = 1 = n= 1= 10.97 1 lg 2 lg 2 0.301
10
2.4 对分法
对分法的主要思想
对分法(二分法,区间分半法)是一种特殊的变步长逐步搜索法。
对分法每一轮搜索的步数为2,即每一轮都是2步搜索完整个待搜索的 有根区间,使有根区间的大小减为上一轮有根区间大小的一半。
主要步骤为:
① 计算当前有根区间中点处的函数值。若函数值为0,则此点为函数 零点,算法结束;否则,判断中点处函数值与区间哪一侧端点处函数 值异号,异号的一侧为新的有根区间。中点成为新的端点,使有根区 间缩小一半。 ② 若步骤①得到的有根区间足够小,则取此区间的中点为近似根, 算法结束;否则,对新的有根区间,重复执行步骤①。
2h
5
2.3 根的搜索
逐步搜索法的算法

非线性方程求根

第二章非线性方程求根线性方程是方程式中仅包含未知量的一次方项和常数项的方程,除此之外的方程都是非线性方程(nonlinear equation). 例如,大家熟知的“一元二次方程”就是一个非线性方程. 多元线性方程组的求解是数值计算领域的一个重要问题,在后续几章将专门讨论. 本章介绍求解非线性方程的数值方法,主要针对实数域,重点是单个非线性方程的求根问题.2.1引言2.1.1非线性方程的解记要求解的单变量非线性方程为f(x)=0(2.1)其中函数f: ℝ→ℝ. 一般而言,非线性方程的解的存在性和个数是很难确定的,它可能无解,也可能有一个或多个解.例2.1 (非线性方程的解):分析下列非线性方程的解是否存在和解的个数.(1) e x+1=0. 此方程无解.(2) e−x−x=0. 此方程有一个解.(3) x2−4sinx=0. 此方程有两个解.(4) x3−6x2+5x=0. 此方程有三个解.(5) cosx=0. 此方程有无穷多个解.在实际问题中,往往要求的是自变量在一定范围内的解,比如限定x∈[a,b]. 函数f一般为连续函数,则可记为f(x)∈C[a,b],C[a,b]表示区间[a,b]上所有连续实函数的集合. 假设在区间[a, b]上方程(2.1)的根为x∗,也称x∗为函数f(x)的零点. 方程的根可能不唯一,而且同一个根x∗也可能是方程(2.1)的多重根.定义2.1:对光滑函数f,若f(x∗)=f′(x∗)=⋯=f(m−1)(x∗)=0,但f(m)(x∗)≠0,则称x∗为方程(2.1)的m重根. 当m=1时,即f(x∗)=0,f′(x∗)≠0时,称x∗为单根.对于多项式函数f(x),若x∗为m重根,则f(x)可因式分解为f(x)=(x−x∗)m g(x)其中g(x)也是多项式函数,且g(x∗)≠0. 很容易验证,f(x∗)=f′(x∗)=⋯=f(m−1)(x∗)=0,但f(m)(x∗)≠0,即多项式方程重根的概念与定义2.1是一致的. 对一般的函数f,x∗是方程(2.1)的重根的几何含义是,函数曲线在x∗处的斜率为0,且在该点处与x轴相交.非线性方程的一个特例是n次多项式方程(n≥2),根据代数基本定理可知,n次方程在复数域上有n个根(m重根计为m个根). 当n=1, 2时,方程的求解方法是大家熟知的. 当n=3, 4时,虽然也有求根公式,但已经很复杂,在实际计算时并不一定适用. 当n≥5时,不存在一般的求根公式,只能借助数值求解方法来求根.2.1.2问题的敏感性根据问题敏感性的定义,这里需要考虑输入数据的扰动对方程的根有多大影响. 要分析敏感性首先应假设问题中的数据如何扰动,一种易于分析的情况是将非线性方程写成:f(x)=y的形式,然后讨论y在0值附近的扰动造成的问题敏感性. 此时,求根问题变成了函数求值问题:y =f (x )的反问题. 若函数值f (x )对输入参数x 不敏感(x 在解x ∗附近变化),则求根问题将很敏感;反之,若函数值对参数值敏感的话,求根则不敏感. 这两种情况如图2-1所示.下面分析y 发生扰动Δy 引起的方程的根的扰动Δx . 由于当x =x ∗时,y =0,我们使用绝对(而不是相对)条件数:cond =|Δx |≈1|| 条件数的大小反映方程求根问题(2.1)的敏感程度,若|f ′(x ∗)|很小,则问题很敏感,是一个病态问题;反之,若|f ′(x ∗)|很大,则问题不敏感.一种特殊情况是f ′(x ∗)=0,即x ∗为重根,此时求根问题很敏感,原问题的微小扰动将造成很大的解误差,甚至改变解的存在性和唯一性(如图2-2,问题的扰动可能使解不存在).对于敏感的非线性方程求根问题,f (x )≈0并不意味着x 很接近x ∗,在后面讨论迭代解法的判停准则时应注意这一点.2.2二分法数值求解非线性方程通常是一个迭代的过程,迭代开始之前要先有个初始的近似解,然后随着迭代步数的增多,近似解越来越接近准确解,当达到一定要求时即停止计算过程. 本节先介绍一种最基本的方法——二分法(interval bisection method).2.2.1 方法原理先介绍有根区间的概念,有根区间就是包含至少一个根的区间,它限定了根存在的范围. 如果能计算出一个非常小的有根区间,那么区间的中点就是一个很好的近似解. 下面的定理给出了有根区间的充分条件.定理2.1:若f (x )∈C[a,b],且f (a )f (b )<0,则区间(a,b )内至少有一实根.这里省略定理证明过程,只给出图2-3作为一个解释.定理2.1给出了一种获得有根区间的方法,即通过看f (a )、f (b )两个值是否符号相反来判断(a, b)是否为有根区图2-1 方程求根问题的敏感性:(a)不敏感;(b)敏感.(a) (b)图2-2 f . 图2-3 若f (a )f (b )<0,则在区间(a,b )内至少有一实根.间. 在实际操作时,可在一个较大的范围内取多个点计算f(x)函数值,从而得到一个或多个有根区间. 另外应注意,根据定理2.1得到的有根区间内不一定只有一个根,这从图2-3也可以看出.二分法的思想很简单,就是每次将有根区间一分为二,得到长度逐次减半的区间序列{(a k,b k)},则区间中点x k=(a k+b k)2⁄就是第k步迭代的近似解. 具体算法如下:算法2.1:二分法输入:a, b, 函数f(x) ; 输出:x.While(b−a)> εdox:= a+(b−a)/2;If sign(f(x))=sign(f(a))thena:= x;Elseb:= x;EndEndx:= a+(b−a)/2.在算法2.1中,sign()表示取符号的函数,而二分迭代结束的条件为有根区间(a, b)的长度小于某个阈值ε. 应注意,浮点运算中几乎不可能出现等于0的情况,所以sign()函数的结果只是正号、或负号.假设二分法得到的有根区间序列为{(a k,b k),k=0,1,⋯},若取解x k=(a k+b k)2⁄,则误差|x k−x∗|<(b k−a k)2⁄=(b0−a0)2k+1⁄,k=0,1,2,⋯.(2.2) 根据公式(2.2)和对解的准确度的要求,也可以事先估算出二分迭代执行的次数,以及相应的计算量. 这里每步迭代的计算量主要是计算一次函数f(x k).例2.2(二分法):求方程f(x)=x4−x−2=0在区间[1.0, 1.5]上的一个实根,要求准确到小数点后第2位(四舍五入后).[解] 首先验证(1.0, 1.5)是否是一个有根区间,易知f(1.0)<0,f(1.5)>0. 所以将(1.0, 1.5)作为二分法的初始区间. 利用(2.2)式我们可以估计,若(b−a)2k+1⁄≤0.5×10−2(2.3) 则|x k−x∗|<0.5×10−2,即结果准确到了小数点后第2位. 代入a=1.0, b=1.5,求解(2.3)得,k≥log20.50.5×10−2−1=5.6取最小的整数值k=6. 只需二分6次,可得到满足精度要求的解. 计算过程中的数据和结果列于表2-1. 从中看出,准确到小数点后两位的解为x=1.356(准确解为1.353210).表2-1 采用二分法求解例2.2的过程和结果2.2.2 算法稳定性和结果准确度算法的稳定性考察的是计算过程中的误差对结果的影响. 对于二分法来说,主要的计算步骤是计算函数值,一般采用双精度浮点数计算函数值的误差很小,而其他计算是少量的加减法,因此不至于对有根区间,以及最终结果的准确度造成多大影响. 另外,在计算过程中解的误差限逐次减半,这也说明二分法是稳定的.在实际的浮点算术体系中,二分法运行结果的准确度不可能随迭代过程一直提高. 首先看一个例子.例 2.3(二分法准确度的极限):编写程序用二分法来求解方程f(x)=x2−2=0,初始区间为[1, 2].下面是用MATLAB语言编写的程序:M =2; a = 1; b= 2; k = 0;while b-a > eps //Matlab中的eps为2倍的机器精度,即2− 2 x = a + (b-a)/2;if x^2 > Mb = x //输出belsea = x //输出aendk = k+1;end这个程序执行了52步就结束了,输出结果如下:b = 1.50000000000000a = 1.25000000000000a = 1.37500000000000b = 1.43750000000000………………a = 1.41421356237309a = 1.41421356237309b = 1.41421356237310b = 1.41421356237310为了看得更清楚,输入MATLAB命令”format hex”,使输出按16进制格式显示,再运行一遍上述程序,最后的四个输出结果为:a = 3ff6a09e667f3bc8a = 3ff6a09e667f3bccb = 3ff6a09e667f3bceb = 3ff6a09e667f3bcd可以看出,最终区间(a, b)的两个端点已经是两个相邻的浮点数,即使让二分过程继续执行下去,区间仍然不会改变(由于a和b平均值的计算结果就是其中的某一个). 也就是说迭代再多的次数,结果的准确度也无法提高了.上述例子说明了二分法结果准确度的极限情况. 一般地,二分法迭代过程中,有根区间缩小的极限情况是使它的端点a k, b k为两个相邻的机器浮点数. 此时,b k−a k=2⌊log2|x∗|⌋∙2εmacℎ其中εmacℎ为机器精度,⌊∙⌋为下取整符号,而2⌊log2|x∗|⌋为x∗的二进制表示中指数的那部分. 在这种极端情况下,解的误差限就是区间长度,即|e(x k)|=|x k−x∗|≤2⌊log2|x∗|⌋∙2εmacℎ .(2.4) 在IEEE双精度浮点数系统下,εmacℎ=2− 3,则|e(x k)|≤2⌊log2|x∗|⌋∙2εmacℎ≤|x∗|∙2− 2≈|x∗|∙2.22×10−16 .根据(2.4)式,也可得到相对误差的上限:|e r(x k)|=|x k−x∗||x∗|≤2εmacℎ .(2.5)这个相对误差限正好是计算机中用浮点数表示实数的误差限(定理1.5)的两倍.公式(2.4)给出了用二分法求解时绝对误差限可能达到的最小值,它说明在准确解较大的情况下,在执行二分法时无论迭代多少次都无法保证解的误差非常小. 综合上述讨论以及公式(2.2),得到如下定理.定理2.2:在实际的浮点算术体系下采用二分法解方程f(x)=0,设初始有根区间为(a, b),则:(1) 结果的误差限最小可达到2⌊log2|x∗|⌋∙2εmacℎ,其中x∗为准确解,相对误差限最小可达2εmacℎ.(2) 若误差阈值ε大于或等于2⌊log2|x∗|⌋∙2εmacℎ,需执行的迭代步数为k=⌈log2(b−a)−1⌉ .(2.6)定理2.2的结论(2)的证明留给读者思考.最后,对二分法说明几点:●二分法是求单变量方程f(x)=0的实根的一种可靠算法,一定能收敛.●二分法解的误差不一定随迭代次数增加一直减小,在实际的有限精度算术体系中,误差限存在最小值.●二分法的缺点是有时不易确定合适的初始有根区间(含两个初始值)、收敛较慢、且无法求解偶数重的根. 因此,实际应用中常将二分法与其他方法结合起来.2.3不动点迭代法二分法的计算效率不够高,在本章后续部分将介绍几种应用广泛、收敛较快的迭代法. 本节介绍不动点迭代法及其收敛性理论,为后续其他方法的讨论建立基础.2.3.1基本原理通过某种等价变换,可将非线性方程(2.1)改写为:x=φ(x)(2.7)其中φ(x)为连续函数. 给定初始值x0后,可构造迭代计算公式:x k+1=φ(x k),(k=0,1,⋯)(2.8) 从而得到近似解序列{x k}. 由于方程(2.1)和(2.7)的等价关系,很容易证明若序列{x k}收敛,其极限必为原方程(2.1)的解x∗. 由于解x∗满足x∗=φ(x∗),称它为函数φ(x)的不动点(fixed point),此方法为求解非线性方程(2.1)的不动点迭代法(fixed-point iterative method).不动点迭代法的求解过程如图2-4所示,而算法描述图2-4 采用不动点迭代法,近似∗在下面给出.算法2.2:基于函数φ(x)的不动点迭代法输入:x 0, 函数f (x ), φ(x) ; 输出:x .k:= 0 ;While |f (x k )|> ε1 或|x k −x k−1|> ε2 dox k+1:=φ(x k ) ;k:= k +1 ;Endx:= x k .其中ε1和ε2为用于判断迭代是否应停止的两个阈值. 关于迭代的判停准则,我们在2.4.3节详细讨论.例 2.4(不动点迭代法):求f (x )=x 4−x −2=0在x 0=1.5附近的根. 以不同的方式得到方程的等价形式,研究相应的不动点迭代法的收敛情况.[解] 将原方程改为等价的(A), (B)两种形式,得到下述两种不动点迭代法.方法(A):将方程改写为x =x 4−2. 得到的迭代法计算公式为:x 0=1.5, x k+1=x k 4−2,(k =0,1,⋯). 计算出结果如下:x 1=1.54−2=3.0625,x 2=2.3753−1=85.9639,… …从上述计算结果看,序列{x k }有趋于无穷大的趋势,迭代法不收敛,无法求出近似解. 方法(B):将方程改写为x =√x +24. 得到的迭代法计算公式为:x 0=1.5, x k+1=√x k +24,(k =0,1,⋯). 计算出结果如下:x 1=√1.5+24=1.3678,x 2=√1.3678+24=1.3547,x 3=√1.3547+24=1.3534,x 4=√1.3534+24=1.3532,x =√1.3532+24=1.3532,从上述计算结果看,x 4和x 前5位有效数字均为1.3532,可认为迭代过程是收敛的,要求的根为1.3532.通过例2.4可以看出,用不同的方式改造原方程,可得到多种不动点迭代法计算过程,其收敛性质也是不同的. 因此,判断一个不动点迭代法是否收敛至关重要.2.3.2全局收敛的充分条件下面的定理给出一个函数存在唯一不动点的充分条件.定理2.3:设φ(x)∈C[a,b],若满足如下两个条件:(1)对任意x ∈[a,b],有a ≤φ(x)≤b ,(2)存在正常数L ∈(0,1),使对任意x 1,x 2∈[a,b],|φ(x 1)−φ(x 2)|≤L |x 1−x 2|则φ(x)在[a,b]上存在不动点,且不动点是唯一的.在证明定理之前,先理解一下定理中两个条件的含义. 首先,采用不动点迭代法的计算公式为x k+1=φ(x k ), k =0, 1, 2, …,因此要使后续迭代步的计算合法,必须要求φ(x k )的值在函数的定义域内,(1)的条件保证了这一点. 其次,(2)中新加的条件表明,φ(x)曲线上任两点连线斜率的绝对值不超过L ,当两点非常靠近时它就是导数,因此φ(x)曲线上任意点的切线斜率的绝对值都小于1,这说明φ(x)曲线变化很平缓,在曲线上任意点处的斜率都比y =x 和y=−x两条直线小. 这个条件也称为L<1的李普希兹(Lipschitz)条件,L为李普希兹系数. [证明] 先证明不动点的存在性,分两种情况:1). 若φ(a)=a,或φ(b)=b,则a或b为不动点;2). 若φ(a)≠a且φ(b)≠b,则φ(a)>a,φ(b)<b. 令f(x)=φ(x)−x,则f(x)为连续函数,且f(a)>0,f(b)<0.根据连续函数性质,必有x∗∈(a,b),使f(x∗)=0,即φ(x∗)=x∗,x∗为不动点.再证明唯一性,采用反证法. 假设有两个不同的不动点x1∗,x2∗∈[a,b],它们满足φ(x1∗)=x1∗,φ(x2∗)=x2∗,x1∗≠x2∗ .根据(2)中的条件推出,|x1∗−x2∗|=|φ(x1∗)−φ(x2∗)|≤L|x1∗−x2∗|<|x1∗−x2∗| .产生矛盾!所以假设x1∗≠x2∗不成立,不动点是唯一的.应说明的是,上述证明不动点的存在性只使用了条件(1). 事实上,通过画函数曲线图的方式也可以形象地说明不动点的存在性,这一点留给感兴趣的读者思考.下面的定理给出不动点迭代法收敛的充分条件.定理2.4:设φ(x)∈C[a,b]满足定理2.3的两个条件,则对于任意初值x0∈[a,b],由不动点迭代法得到的序列{x k}收敛到φ(x)的不动点x∗,并有误差估计:|x k−x∗|≤L k1−L|x1−x0| .[证明] 首先注意到定理条件保证了不动点唯一存在,而且条件(1)保证了不动点迭代法可执行下去,从而得到序列{x k}. 下面证明序列{x k}收敛,其思路是考虑误差序列,证明其极限为0.|x k−x∗|=|φ(x k−1)−φ(x∗)|≤L|x k−1−x∗|≤⋯≤L k|x0−x∗|由于L为小于1的正常数,则lim k→∞L k|x0−x∗|=0,⟹limk→∞|x k−x∗|=0, ⟹limk→∞x k=x∗.这证明了不动点迭代法是收敛的. 剩下|x k−x∗|≤L k1−L|x1−x0|的证明,留给读者思考.定理2.4为判断不动点迭代法的收敛性提供了依据,这种收敛不依赖于初值x0的选取,因此称为全局收敛性. 为了方便应用,也可以将定理2.3, 2.4中的第2个条件替换为:对任意x∈[a,b],有|φ′(x)|≤L<1,其中L为常数,得到便于使用的定理2.5.定理2.5:设φ(x)∈C[a,b],且满足如下两个条件:(1)对任意x∈[a,b],有a≤φ(x)≤b;(2)存在正常数L<1,使对任意x∈[a,b],有|φ′(x)|≤L<1.则对于任意初值x0∈[a,b],由不动点迭代法得到的序列{x k}收敛到φ(x)的不动点x∗,并有误差估计:|x k−x∗|≤L k1−L|x1−x0| .此定理可看成定理2.4的推论,其证明留给读者思考.例2.5(不动点迭代法的收敛性):对于求f(x)=x4−x−2=0在x0=1.5附近的根的问题,使用定理2.5考察例2.4中两种方法的全局收敛性.[解]在区间[1, 2]上考察如下两种不动点迭代法的收敛性:方法(A):x k+1=x k4−2, (k=0,1,⋯).方法(B):x k+1=√x k+24, (k=0,1,⋯)很容易看出,方法(B)符合定理中的条件(1),而φ′(x)=14(x+2)−3/4,也符合条件(2),因此方法(B)具有全局收敛性. 而对于方法(A),它不符合定理中的条件(1),因此无法根据定理2.5说明其具有全局收敛性.关于全局收敛性再说明两点:●定理2.4, 2.5给出的都是不动点迭代法全局收敛的“充分条件”,也就是说,对一些满足条件的方法可以证明其具有全局收敛性,但根据它们并不说明某个方法不具有全局收敛性.●全局收敛性要求初始值x0为定义域内任意值时不动点迭代法都收敛,这常常是很难达到的要求.2.3.3局部收敛性不同于全局收敛性,下面给出重要的局部收敛性的概念.定义2.2:设函数φ(x)存在不动点x∗,若存在x∗的某个邻域D: [x∗−δ,x∗+δ],对于任意初值x0∈D,迭代法x k+1=φ(x k)产生的解序列{x k}收敛到x∗,则称迭代法局部收敛.这个定义中的邻域是以x∗为中心点的一个对称区间,局部收敛性的定义要求的是存在这样一个邻域,而不关心它的大小. 下面的定理给出迭代法局部收敛的充分条件.定理2.6:设x∗为函数φ(x)的不动点,若φ′(x)在x∗的某个邻域上连续,且|φ′(x∗)|<1,则不动点迭代法x k+1=φ(x k)局部收敛.[证明] 因为φ′(x)在x=x∗附近连续且|φ′(x∗)|<1,则存在x∗的某个邻域D,使得对于任意. 显然L<1, 的xϵD, |φ′(x)|≤L, 其中L是某个介于|φ′(x∗)|和1之间的数, 例如L=|φ′(x∗)|+12即满足定理2.5的条件(2). 另外,对∀x∈D,φ(x)−x∗=φ(x)−φ(x∗)=φ′(ξ)(x−x∗), ξ∈D, ⟹|φ(x)−x∗|≤L|x−x∗|<|x−x∗|, 即φ(x)∈D,满足定理2.5的条件(1).因此,根据定理2.5,此迭代法对区间D内的任意初值都收敛,根据定义2.2知,此迭代法局部收敛.对比定理2.6和定理2.4、2.5可以看出,定理2.6的条件较为宽松,它只需要考察函数φ(x)在x∗这一点上是否满足要求. 因此,不动点迭代法较容易具有局部收敛性,对局部收敛的判断也相对简单.最后说明一点,定理2.5说明李普希兹系数L越小迭代收敛的速度越快,而定理2.6的证明过程说明了L与|φ′(x∗)|的关系. 因此,若|φ′(x∗)|越小,迭代收敛的速度就越快.2.3.4稳定性与收敛阶与二分法类似,不动点迭代法的每步计算都可以通过判停准则(包括考察f(x k)是否接近0)来评估解的准确度,因此解的误差容易被及时发现和纠正. 只要迭代过程是收敛的,误差将随迭代步的增加逐渐趋于零,而不会像某些算法的舍入误差会随迭代过程逐渐累积. 因此收敛的不动点迭代法总是稳定的. 在本章后续算法的讨论中,我们将不再关心稳定性,而将重点放在收敛性的讨论上.对于收敛的迭代法,其收敛速度的快慢也很重要,它关系到达到特定的准确度需要多少步迭代,也就是需要多少计算量. 下面先看一个例子,然后给出收敛阶的概念用于衡量迭代收敛的速度.例2.6(迭代收敛速度):假设有(1)~(3)三个迭代求解过程,其迭代解的误差|e(x k)|=|x k−x∗|随迭代步变化情况分别为:(1) 10-2, 10-3, 10-4, 10-5, ……。

非线性动力学复习参考

非线性动力学复习参考1、简述绘制相轨线的原理及其作用。

解:单自由度机械系统的自由振动,其动力学方程的一般形式为(,)0x f x x+= (1) 引入新的变量y 表示速度x(2)则系统的运动状态由位置x 及速度y 所体现,x 和y 构成系统的状态变量,方程(1)可写为状态变量的一阶微分方程组:,(,)xy y f x y ==- (3) 设状态变量的初始条件为(4)方程(3)的满足初始条件(4)的解x(t)和y(t) 完全确定系统的运动过程。

以x 和y 为直角坐标建立(x,y)平面,称为系统的相平面。

与系统的运动状态一一对应的相平面上的点称为系统的相点。

系统的运动过程可以用相点在相平面上的移动过程来描述。

相点移动的轨迹称为相轨迹。

不同初始条件的相轨迹组成相轨迹族。

现在我们来推导,如何利用该微分方程组得到相轨迹族。

绘制相轨迹线的作用:相轨迹线可以帮助我们定性地了解系统在不同初始条件下的运动全貌。

当系统是强非线性振动的时候,近似解析法(如小参数摄动法,多尺度法)不再适用,此时可以采用相轨迹法来研究。

相轨迹的奇点和极限环分别对应于系统的平衡状态和周期运动分析。

奇点和极限环的类型可以判断平衡状态和周期运动的稳定性,以及受扰动后可能具有的振动特性。

6、简述非线性单自由度保守系统自由振动的主要特点及其与线性系统的区别。

解:(1)非线性保守系统的动力学方程的一般形式为 ()0xf x += ,化为状态方程为 对应的相轨迹微分方程为 ;(2)相轨迹线在平面上,只有当总能量大于势能时,速度才有实数解,而且y 关于X 轴对称;()x y y f x =⎧⎨=-⎩(3)相轨迹微分方程决定了相平面上的一个方向场:f(x)=0 处有水平切线,y=0时,有竖直切线;当f(x),y同时为零时,相轨线的斜率不定,称这一点为奇点,奇点的速度、加速度都为零,代表了平衡点,其它各点的斜率都是确定的,称为正常点,所以保守系统的相轨线在正常点是互不相交的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档