方程求根与解常微分方程 - 范文中心

方程求根与解常微分方程

10/16

第6章 方程求根与解常微分方程

6.1实验目的

了解微分方程的通解、特解和近似解的概念。熟悉方程求根和常微分方程解的概念,熟悉Mathematica 软件的方程求根和求常微分方程解的命令,掌握用数学软件处理方程求根和常微分方程解的有关问题.

6.2实验准备

6.2.1数学概念

1.微分方程

2.微分方程的通解、特解

6.2.2数学软件命令

1. Solve[eqn, x]

功能:求多项式方程eqn 的所有根,当多项式方程的次数n ≤4时,给出eqn 所有根的准确形式, 当n>4时,不一定能求出所有的根, 此时,命令输出形式为

{ToRules[Roots[eqn, x ]]}

n 次多项式方程的一般形式为:

a 0+a 1x +a 2x 2+" +a n x n =0

式中a 0 ,a 1, a2,…,a n为常数。

2. Solve[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk}]

功能:求多项式方程组{eqn1, eqn2, …, eqnk}的所有根, 当其中每个多项式方程的次数n  4时, 给出所有根的准确形式, 否则,不一定能求出所有的根, 此时,命令输出形式为{ToRules[Roots[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk} ]]} 。

3. NSolve[eqn, x]

功能:求多项式方程eqn 的所有根的近似形式。

4. NSolve[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk}]

功能:求多项式方程组{eqn1, eqn2, …, eqnk}所有根的近似形式。

5. FindRoot[eqn, {x, x0}]

功能:求方程eqn 的在初值x0附近的一个近似根。

6. FindRoot[{eqn1,eqn2, ... }, {x, x0}, {y, y0}, ... ]

功能:求方程组{eqn1, eqn2, …}在初值(x0,y0,…)附近的一个近似根。

7.DSolve[eqn,y[x],x]

功能:求常微分方程eqn 的通解y=f(x,C).

8.DSolve[{eqn,初始条件},y[x],x]

功能:求常微分方程eqn 满足初始条件的特解.

9.DSolve[{eqn1,eqn2, ... }, {y1[x],y2[x], ... }, x]

功能:求常微分方程组{eqn1,eqn2, ... }的解.

10. NDSolve[ eqns, y, {x, xmin, xmax}]

功能:求出自变量范围为[xmin, xmax]且满足给定常微分方程及初值条件eqns 的未知函数y 的数值解. 得到的解是以

{{未知函数名->InterpolatingFunction[range, ]}}

的形式给出的, 其中的InterpolatingFunction[range, ]是所求的插值函数表示的数值解, range就是所求数值解的自变量范围。

11.NDSolve[ eqns, {y1,y2, ... }, {x, xmin, xmax}]

功能:求出自变量范围为[xmin, xmax]且满足给定常微分方程及初值条件eqns 的未知函数y1,y2, ... 的数值解。

6.3实验任务

6.3.1基础实验

本实验熟悉数学软件命令操作。

1. 求下列代数方程的根

1)设 x 3 -4x 2 +9x - 10 = 0 ,求方程的所有根。

2)设x 2 -ax - 4b=0,求方程的所有根,a ,b 为常数。

3)求方程组

⎧x +3y =0 ⎨22⎩x +y =1

的所有根。

4)设 x 6 -x2 +2x - 3 = 0 ,求方程的所有根。

5)求方程组

⎧a 1+a 2=1⎪⎪x 1a 1+x 2a 2=14⎪⎪⎨21 2⎪x 1a 1+x 2a 2=9⎪⎪x 3a +x 3a =1

1122⎪16⎩

的所有根,这里x 1 ,x 2,a 1,a 2 是变量。

2.求下列超越方程的解

1)求方程组

⎧x =y 2

⎨⎩y =cos x

在(1,2)附近的根

2)求方程e x /2sin x =2在[0, 3]内的所有根。

3. 求解下列微分方程

1) 求常微分方程y ′=2ax 的通解,a 为常数

2) 求常微分方程y ′′+y =0的通解

3) 求常微分方程

⎧′x y ⎪y =+ y x ⎨⎪y (1)=2⎩

的特解。

⎧dx =y +1⎪⎧x (0)=−2⎪dt 4) 求方程组⎨且满足⎨的特解. (0)0dy y =⎩⎪=x +1⎪⎩dt

5) 求微分方程初值问y ′=x +y , y (0)=1在区间[0,1]内的数值解

6) 求y ′′−y ′=x ,满足y (0)=0,y ′(0)=0的特解.

6.3.2探索实验

本实验探索最速降线问题。

4. 一初始速度为零的质点,仅受到重力的作用,沿光滑固定的曲线由定点滑行到定点 (低于,但不在同一铅直线上) .为使滑行的时间最短,确定该曲线具有什么形状的问题称为最速降线问题(如图6-1)。理论推导得出该最速降线可以由如下微分方程描述:

⎡1+y ′2⎦⎤=c 且y (0)=

0 y ⎣

图6-1

请给出该最速降线的曲线方程。

6.3.3应用实验

本实验研究传染病传播问题。

10小时后有2人被传染发病。5. 一艘游船载有1000人, 一名游客患了某种传染病,

由于这种传染病没有早期症状,故传染者不能被及时隔离。假设直升飞机将在50至60小时将疫苗运到,试估算疫苗运到时患此传染病的人数。

6.4实验过程

1.

1)In[1]: = Solve[x^3-4x^2+9x-10==0,x]

Out[1]= {{x -> 1 - 2 I}, {x -> 1 + 2 I}, {x -> 2}}

所以,所求全部根为 x1=1-2I,x2=1+2I , x3=2, I 为虚数单位。

2)In[2]: = Solve[x^2-a*x-4*b==0,x]

⎧⎧11⎫⎧⎫⎫Out[2]= ⎨⎨x →a ⎬, ⎨x →a +⎬⎬ 22⎭⎩⎭⎭⎩⎩

所求全部根为

(

(x 1=11a −, x 2=a + 22(

(3)In[3]: = Solve[{x+3y==0,x^2+y^2==1},{x,y}]

⎧⎧⎧⎫Out[3]= ⎨⎨x →y →, ⎨x →y → ⎩⎭⎩⎩

4)In[4]: = Solve[x^6-x^2+2x-3==0 , x]

Out[4]= {ToRules[Roots[2 x – x2 + x 6 = = 3, x]]}

此结果说明求不出准确根, 改用NSolve 命令

In[5]: = NSolve[x^6-x^2+2x-3==0,x]

Out[5]= { {x -> -1.40825}, {x -> -0.465869 - 1.19413 I}, {x -> -0.465869 +

1.19413 I}, {x -> 0.608047 - 0.885411 I}, {x -> 0.608047 + 0.885411 I}, {x ->

1.12389} }

得所求全部6个近似根为

x1=-1.40825, x2=-0.465869- 1.19413 I, x3=-0.465869 + 1.19413 I,

x4= 0.608047 - 0.885411 I, x5= 0.608047 + 0.885411 I, x6= 1.12389 , I为虚数单位。

5)In[6]:=Solve[{a1+a2==1,

x1*a1+x2*a2==1/4,

x1^2*a1+x2^2*a2==1/9,

x1^3*a1+x2^3*a2==1/16},

{a1,a2,x1,x2}]

11Out[6]=⎧212−,a2→212+⎨a1→424424⎩(

(

x2→11⎫15−, x1→15+⎬ 4242⎭(

(In[7]: = N[%] (*显示根的近似形式*)

Out[7]={{a1 -> 0.281461, a2 -> 0.718539, x2 -> 0.112009, x1 -> 0.602277}, {a1 -> 0.718539, a2 -> 0.281461, x2 -> 0.602277, x1 -> 0.112009}

In[8]: = N[%, 8] (*显示根取8位有效数字的近似值*) Out[8]= {{a1 -> 0.28146068, a2 -> 0.71853932, x2 -> 0.11200881, x1 ->

0.60227691}, {a1 -> 0.71853932, a2 -> 0.28146068, x2 -> 0.60227691, x1 -> 0.11200881}}

2.

1)In[1]: = FindRoot[{x==y^2,y==Cos[x]},{x,1},{y,2}]

Out[1]= {x -> 0.641714, y -> 0.801071}

所求的根为

x = 0.641714, y = 0.801071。

2) In[2]: = Plot[Sin[x]*Exp[x/2]-2,{x,0,3}]

(*画出方程对应的函数在[0,3]内的图形*)

输出图形为

Out[2]= -Graphics- (*图中可知方程在1.5和2.5附近有根*) In[3]: = FindRoot[Sin[x]*Exp[x/2]-2==0,{x,1.5}]

(*求方程在1.5附近的根*)

Out[3]= {x -> 1.41171}

In[4]: = FindRoot[Sin[x]*Exp[x/2]-2==0,{x,2.5}]

(*求方程在2.5附近的根*)

Out[4]= {x -> 2.54786}

所求根为x1 = 1.41171 , x2= 2.54786。

3.

1)In[1]:= DSolve[y'[x]==2a*x,y[x],x]

Out[1]= {{y[x] -> a x 2 + C[1]}}

即得本问题的通解 y =c 1+ax 2

2) In[2]:= DSolve[y''[x]+y[x]==0,y[x],x]

Out[2]= {{y[x] -> C[2] Cos[x] - C[1] Sin[x]}}

即得本问题的通解: y =c 2cos x −c 1sin x

C 1,C 2是任意常数。

3) In[3]:= DSolve[{y'[x]==x/y[x]+y[x]/x,y[1]==2},y[x],x]

Out[3]= {{y[x] -> Sqrt[x2 (4 + 2 Log[x])]}}

本问题的特解为:

y =

下面的操作可以检验所求特解的正确性

In[4]:= y[x_]:= Sqrt[x^2*(4+2Log[x])] (*将所求特解定义为一个函数*) In[5]= y[1] (*检验初始条件y[1]=2*)

Out[5]=2 (*初始条件成立*)

In[6]:= D[y[x],x]-x/y[x]-y[x]/x; (*将微分方程左端项与右端项相减*) In[7]:= Simplify[%] (*化简计算结果*)

Out[7]= 0 (*说明所求特解正确*)

4)In[8]:= DSolve[{x'[t]==y[t]+1,

y'[t]==x[t]+1,

x[0]== -2,

y[0]==0},

{x[t],y[t]},t]

Out[8]:=x [t ]→−e −t (1+e t ), y [t ]→−e −t (−1+e t )

5) In[9]:= NDSolve[{y'[x]==x+y[x],y[0]==1},y,{x,0,1}]

Out[9]= {{y -> InterpolatingFunction[{0., 1}, ]}}

上面显示的是所求数值解的替换形式,为得到本问题数值解,再键入: {{}}In[10]:= f=y/.%[[1]]

(*把InterpolatingFunction[{0., 0.5}, ]赋值给变量f*)

Out[10]= InterpolatingFunction[{0., 1}, ]

In[11]:= Plot[f[x],{x,0,1}] (*画出所求未知函数数值解的图形*)

输出图形为

Out[11]= -Graphics-

In[12]:= Table[f[x],{x,0,0.5,0.1}]

(*计算数值解在0,0.1,0.2,0.3,0.4,0.5的值*)

Out[12]= {1., 1.11034, 1.24281, 1.39972, 1.58365, 1.79744}

6) In[13]:= DSolve[{y''[x]-y'[x]==x,y[0]==0,y'[0]==0},y[x],x] 1⎧⎧⎫⎫ Out[13]=⎨⎨y [x ]→(−2+2e x −2x −x 2)⎬⎬ 2⎭⎭⎩⎩

4.

1)分析

2′⎤1+y 由于所给微分方程y ⎡⎣⎦=c 不能直接用DSolve 解出,借助换元法将其转化

dy 1⎡1+y ′2⎦

⎤=c 可解出为参数方程的形式。令y =c (1−cos 2t ),再由y ⎣= 2dx dy

dx dx dy 于是,然后积分得到x =x (t ) ,即得到一个参数解.程序如下: ==dt dy dt dy

dx

2)实验操作

In[1]:= y=c*(1-Cos[2*t])/2;

yt=D[y,t];

yx=Sqrt[c/y-1];

xt=yt/yx;

x=Integrate[xt,t];

Print["x=",x]

Print["y=",y]

输出的结果为:

c −Cos[t ]2+t Cot[t ]

1 y=c (1−Cos[2t ]) 2

代入y (0)=0,可以得到c 1=0.令a =c ,θ=2t ,则有最速降线方程为 2

⎧⎪x =a (θ−sin θ) ⎨⎪⎩y =a (1−cos θ)

其中θ为参量,a 为待定参数。从方程可以知道这是高等数学中的摆线标准参数方程.对于具体的最速降线,只要给出B 点的坐标,就可以确定出c 的值,从而最速降线也就完全确定了。

5.

1) 问题分析

设y(t)为发现第一个病人后t 小时时刻的传染人数,则有y(t)对时间t 的导数dy 可以描述该传染病的传染速率。常识表明传染病的传染速率既受到传染人数dt

的影响又受未被传染人数的影响。一般情况下有染病人数越多传染速度越快(因为有很多的传染源)、未被传染人数越多传染速度也越快(因为会有很多的人染病)。因此其影响关系都为正比关系,本题中在t 时刻未被传染的人数为1000-y(t),于是我们可以用如下微分方程描述传染速率:

dy =ky (1000−y ), dt y (0)=1, y (10)=2,其中k 为比例常数

求解此微分方程即可。

2) 实验操作

In[1]:=DSolve[y'[t]==k*y[t]*(1000-y[t]),y[t],t] ⎧⎧⎫1000e 1000kt ⎫⎪⎪ Out[1]:= ⎨⎨y [t ]→1000kt 1000C [1]⎬⎬e −e ⎪⎭⎪⎩⎩⎭

1000e 1000kt

因此得到解y [t ]=1000kt 。 1000C [1]e −e

由y (0)=1可得c =999, 由y (10)=2,可以得1000k=0.0694149

In[2]:= y1[t_]:=1000/(1+999*Exp[-0.0694149t])

于是得到t 小时时刻的传染人数

y (t ) =1000 −0.0694149t 1+999e

In[3]:= Plot[y1[t],{t,0,200}]

输出图形为

Out[3]:=-Graphics-

In[4]:= y1[50]

Out[4]:= 31.1888≈32

In[5]:= y1[60]

Out[5]:= 60.548≈61

因此在t=50小时患此传染病的人数约为32人,在t=60小时患此传染病的人数约为61人。

从这些数字可以看到从50小时到60小时这10小时之间被传染发病的人数几乎翻了一倍,因此在传染病流行期间应该及时采取措施是很重要的。如果不采取措施,通过y(t)的图形可以看到当t 在50到150小时之间传染最快,且当t 趋于无穷大时,y(t)是趋于1000人,即导致全游艇人数都被传染。

6.5思考与提高

1. Solve命令和FindRoot 命令有什么区别?

2. 如果超越方程中含有自变量之外的字母,还能用FindRoot 命令求根吗? 3. 求常微分方程的DSolve[eqn, y[x],x] 命令中的“y[x],x”能否写为“y[t],t”?

6.6练习内容

1. 求下列代数方程的根

1)设 2x3 +x 2 - 3 = 0 ,求方程的所有根。

2)设abx 2+(a4+b4)x +a3b 3=0,ab ≠0, 求方程的所有根,a ,b 为常数。

3)求方程组

⎧2x −3y =5 ⎨22⎩4x −9y =15

的所有根。

4)设 x 8 –x4 +2x - 3 = 0 ,求方程的所有根。

2. 求下列超越方程的解

1) 求方程x sin x – 0.5=0在[-5, 5]内的所有根.

2) 求方程cos3x+2cosx=0在[-10, 10]内的所有根。

3. 求解下列微分方程

1) 求y ′cos 2x +y =tan x 的通解.

2) 求y ′+y +xy 2=0的通解.

3) 求常微分方程组y ′(t ) =x (t ) ,x ′(t ) =y (t ) 的通解

dy 2−3x 2

y =1,且满足y(1)=0的特解. 4) 求+3dx x

⎧x ′+5x +y =e t ⎧x (0)=1,满足⎨的特解. 5) 求⎨⎩y (0)=0⎩y ′−x −3y =0

4. 设有一个弹性系数为的弹簧竖直悬挂着,它的上端固定,下端系上质量为的物体。如果在初始时刻物体运动到最低点,运动距离为,求物体的运动方程。 5. 一敌舰在某海域内沿着正北方向航行时,我方战舰恰好位于敌舰的正西方向1n mile处.我舰向敌舰发射制导鱼雷,敌舰速度位0.42n mile/min,鱼雷速度位敌舰速度的2倍。试问敌舰航行多远时将被击中?

6. 选择一道涉及常微分方程求解的应用题做之,对解答过程中出现的需要求解的数学式子用Mathematia 数学软件命令来求解。


相关内容

  • 基于三点二次插值的方程求根算法
    第7卷第12期2008年12月 南阳师范学院学报 JoumalofNanyang Nomal Unive鹉ity V01.7No.12Dec.2008 基于三点二次插值的方程求根算法 张天良 (南京信息工程大学数理学院.江苏南京210044 ...
  • 配方法解方程教案
    22.2.2 配方法 第2课时 教学内容 给出配方法的概念,然后运用配方法解一元二次方程. 教学目标 了解配方法的概念,掌握运用配方法解一元二次方程的步骤. 通过复习上一节课的解题方法,给出配方法的概念,然后运用配方法解决一些具体题目. 重 ...
  • [用公式法求解一元二次方程]
    2.3<用公式法求解一元二次方程>学案 学习目标: 1.一元二次方程的求根公式的推导. 2.会用求根公式解一元二次方程. 学习重点: 一元二次方程的求根公式 学习难点: 求根公式的条件:b 2-4ac 0 一.学前准备: 1.用 ...
  • 九年级公式法和因式分解法
    九 年级 数学 科辅导讲义(第 讲) 学生姓名: 授课教师: 授课时间: 解一元二次方程-公式法和因式分解法 第一部分 知识点梳理 1. 一元二次方程ax +bx +c =0(a ≠0) 的求根公式是 . 2. 一元二次方程的根的判别式是: ...
  • 关于一元二次方程根的讨论
    对于整系数一元二次方程ax +bx+c=0(a≠0) (1)方程有有理数根的条件是△=b -4ac为一有理数的平方: (2)若a.b.c为奇数,则方程无整数根: (3)若a.b为偶数,而c是奇数,则方程无整数根. 对于整数根,除有结论(2) ...
  • 初高中衔接教材数学因式分解及一元二次方程
    第1课时 因式分解 课标导航: 1. 熟悉常见的乘法公式, 会用乘法公式分解因式; 2. 了解方程的根与对应的代数式的因式分解之间的关系, 体会因式分解的求根法和待定系数法 . 3. 掌握十字相乘法.分组分解法; 4. 能根据问题, 灵活运 ...
  • 解一元二次方程及一元二次不等式练习题-
    一元二次方程练习题 1. 解下列方程:(1)(x1) (3)(6x1)229: (2)(2x1)23: 250. (4)81(x2)216. 1(3x1)264: 4 2 2. 用直接开平方法解下列方程: (1)5(2 ...
  • 苏教版初中数学知识点大全
    初中数学知识点大全 第一章 实数 一. 重要概念 正整数 0 整数 (有限或无限循环性 分数 实数正无理数 (无限不循环小数 整数 有理数 正数 实数 有理数 负数 2.非负数:正实数与零的统称.(表为:x ≥0) 常见的非负数有: 性质: ...
  • 二分法求方程的近似解
    <用二分法求方程的近似解>说课 各位专家.同仁: 大家好! 今天我说课的内容是人教版必修一第三章第一节<利用二分法求方程的近似解>.我将 从背景分析.教学目标设计.课堂结构设计.教学媒体设计.教学过程设计.教学评价设 ...
  • 初二数学总复习 经典例题 含答案
    第二十章 数据的分析 一.本章知识结构图: 二.例题与习题: 2.一组数据1,2,4 ,x ,6的众数是2,则x 的值是( ) A .1 B .4 C .2 5.在"爱的奉献"抗震救灾大型募捐活动中,文艺工作者积极向灾区 ...