精华内容
下载资源
问答
  • 常微分方程学习心得体会篇一:常微分学习心得 常微分学习心得 时光飞逝,常微分的学习也进入了尾声,通过这一学期以来对常微分的学习,我对常微分有了更深的了解,同时,也发现了一些以前没有发现的不足的地方。...

    常微分方程学习心得体会

    篇一:常微分学习心得  常微分学习心得  时光飞逝,常微分的学习也进入了尾声,通过这一学期以来对常微分的学习,我对常微分有了更深的了解,同时,也发现了一些以前没有发现的不足的地方。  从学习常微分开始,我就觉得常微分比以前学习的科目要难,而且常微分也与我们以前学习的数学分析和高等代数有着很大的联系,如果连这两门科目都没有学好,那么常微分就基本不会做,在我看来,熟练掌握常微分方程的一些基本解法是学习常微分方程的主要任务,老师在上课时主要是讲想法,锻炼同学们的思维能力的这种教学方法很独特,但是,我们大多数的同学,特别是基础没打好的同学学习起来会有点吃力,接受起来也会有一点难度。因此希望老师在讲解的时候能够具体一点,这样大家学起来会轻松一点。同时,学习是我们自己的事情,常微分的学习让我更加深刻的了解到这一点,我任务常微分只在课堂上学习是不够的,只在课堂上学习的话,过不了多长时间就会忘记,这说明我们对知识的理解并不透彻,掌握的也并不牢固,因此,我们需要在课后进行巩固和提高。  以上就是我在这个学期学习常微分的心得和体会。我相信,通过对常微分的学习,我以后能够做得更好。  篇二:常微分学习心得  常微分学习心得  这一学期我们学习了常微分方程,这门课程给我的感受就是:解方程,它以数学分析,和高等代数为基础,所以要求基础要牢固,才能学好这门课程,现在这门课程的学习已经接近尾声,但学习的效果并不理想,很多的理论知识不能理解,导致章节之间不连贯,学得很乱,而老师的教学又趋向于理论化,讲的知识深刻,有些知识点根本听不懂,常微分这门课程在考研中也占有较大的比重,大概涉及到10分的样子,而在考研的复试中,常微分是复试必考的科目,所以学习好这门课程是必须的,我想这门课程学得不好是有诸多原因的,1是要有好的数学基础,就我自己而言我的基础较差,学习起来吃力,2老师的教学方式不适应,太过于理论化,所以每到上课就听起来枯燥,不想听,导致对这门课程感到有些厌烦,就连一些最基础的东西也不愿意去记了,一个学期下来到现在,觉得自己什么都没学到,考试就发愁了,我知道这种情况,这种学习态度很不好,但这就是我现在在这门科目上的学习状态,请老师谅解。  12级应用数学2班:骆志波学号  篇三:常微分学习心得  常微分学习心得  常微分方程是研究自然现象,物理工程和工程技术的强有力工具,熟练掌握常微分方程的一些基本解法是学习常微分方程的主要任务,凡包含自变量,未知函数和未知函数的导数的方程叫做微分方程。满足微分方程的函数叫做微分方程的解,含有独立的任意常数的解称为微分方程的通解。确定通解中任意常数后所得的解称为该方程的特解。  dyyydx=x +tanx  dμydy解:令μ=x,及dx =x+μ代入,则原方程变为 dx  dμdμtanμx+μ=μ+tanμ,即 =dxdxx  dx将上式变量分离即有cotμdμ=x 。  两边积分得㏑|sinμ|=㏑|x|+c这里c为任意常数 整理后得:sinμ=±e ,令±e =c得到sinμ=c x 此外,方程还有解tanμ=0,sinμ=0.  如果在sinμ=c x中允许c=0,则sinμ=0也就包括在sinμ=c x  dμtanμ中,这就是方程 =的通解为sinμ=c x代回原方程得通解dxx  ysinx =c x。  一阶微分方程的初等解法中把微分方程的求解问题化为了积分问题,这类初等解法是,与我们生活中的实际问题密切相关的值得我c c  们好好探讨。  在高阶微分方程中我们学习的线性微分方程,作为研究线性微分方程的基础,它在物理力学和工程技术, 自然科学中时存在广泛运用的,对于一般的线性微分方程,我们又学习了常系数线性微分 变量的方程,其中涉及到复值与复值函数问题,相对来说是比较复杂难懂的。  至于后面的非线性微分方程,其中包含的稳定性,定性基本理论和分支,混沌问题及哈密顿方程,非线性方程绝大部分的不可解不可积现象导致了我们只能通过从方程的结构来判断其解的性态问题,在这一章节中,出现的许多概念和方法是我们从未涉及的,章节与章节中环环相扣,步步深入,由简单到复杂,其难易程度可见一斑。  由此,常微分方程整体就是由求通解引出以后的知识点,以求解为基础不断拓展,我们所要学习的就是基础题解技巧,培养自己机制与灵活性,多反面思考问题的能力,敏锐的判断力也是不可缺少的。、  篇四:我的高等数学的学习感想  中 国 地 质 大 学  本科生课程论文封面  课程名称大学生数学思想选讲教师姓名 李宏伟 学生姓名 余占辉 班号 141112学号20XX1002824  日 期:20XX 年 6 月 29 日  浅

    展开全文
  • 通过本次实验,熟悉求解常微分方程初值问题的有关方法和理论,主要是欧拉法、改进欧拉法、四阶龙格库塔法,学会编制这两种方法的计算程序。体会这两种解法的功能、优缺点及适用场合。 解初值问题,并在屏幕上按适当...
  • 应用matlab软件对常微分方程求解;前沿;一常微分方程组的符号解(4)若边界条件少于方程组的阶数则返回的结果r中会出现任意常数C1C2(6)若没有给定输出参量则在命令窗口显示解列表若该命令找不到解析解则返回一警告信息...
  • Euler 法求解常微分方 阿达姆斯预测校正方法求解常微分方程数值解改进的欧拉法求解常微分方程龙格库塔方法求解常微分方程数值解
  • import matplotlib.pyplot as plt import numpy as np y = 1 x = 0 xx = np.random.random(100) yy = np.random.random(100) for i in range (0,100): y = 1.1*y - 0.2*x/y ...plt.title("欧拉") plt.plot(.
    import matplotlib.pyplot as plt
    import numpy as np
    y = 1
    x = 0
    xx = np.random.random(100)
    yy = np.random.random(100)
    for i in range (0,100):
        y = 1.1*y - 0.2*x/y
        x = x + 0.01
        xx[i] = x
        yy[i] = y
    print(xx)
    print(yy)
    plt.title("欧拉")
    plt.plot(xx, yy)
    plt.show()

     

     

    展开全文
  • 本文整理常微分方程数值求解的欧拉法与龙格-库塔法。一般地,动力学系统的时间演化可以用常微分方程的初值问题来描述,例如设一维简谐运动的回复力: ,有则运动方程: 。令 ,可以将二阶微分方程转化为一阶微分方程...

    大三时候在跳蚤市场闲逛,从一位数学院的学长那里买了一些闲书,最近翻出来刚好有李荣华、刘播老师的《微分方程数值解法》和王仁宏老师的《数值逼近》,结合周善贵老师的《计算物理》课程,整理一下笔记。

    本文整理常微分方程数值求解的欧拉法与龙格-库塔法。

    一般地,动力学系统的时间演化可以用常微分方程的初值问题来描述,例如设一维简谐运动的回复力:

    ,有则运动方程:

    。令

    ,可以将二阶微分方程转化为一阶微分方程组:

    因此本文主要整理一阶常微分方程初值问题的数值解法。

    一阶常微分方程初值问题

    在区域

    上连续,对于一个给定的常微分方程

    及初值

    ,求解

    。为了保证解

    存在、唯一且连续依赖初值

    ,要求

    满足Lipschitz条件:

    存在常数L,使得

    对所有

    成立。

    假设

    总满足上述条件。常用的近似解法有级数解法等近似解析方法,以及下文整理的数值方法:欧拉法与龙格-库塔法。

    欧拉法

    将区间

    作N等分,每一小区间长度

    称为步长,

    称为节点。根据初值

    ,代入微分方程可直接解出

    的导数值

    推导

    1、根据泰勒展开式:

    略去二阶小量,得:

    以此类推,得到递推公式:

    2、数值积分推导

    可得:

    ,使用左矩形积分得:

    以此类推,可得到:

    为了提高精度,可以使用梯形积分代替矩形积分,即:

    以此类推,得到改进的欧拉法:

    Python计算实例

    为例,其精确解为

    ,使用欧拉法求解的Python代码如下:

    import math

    from matplotlib import pyplot as plt

    t_0 = 0

    y_0 = 1

    tau = 0.1

    i = 1

    solve = []

    Euler = []

    t = []

    while i < 100:

    if i == 1:

    y_n = y_0

    t_n = t_0

    Euler.append(y_n)

    solve.append(math.exp(t_n))

    t.append(t_n)

    func = y_n

    y_n = y_n + tau * func

    t_n = t_n + tau

    i += 1

    plt.plot(t, Euler, c='green', label=' Euler method')

    plt.plot(t, solve, c='red', label=' accuracy')

    plt.fill_between(t, solve, Euler, facecolor='blue', alpha=0.2)

    plt.title('Euler method', fontsize=19)

    plt.xlabel('t', fontsize=19)

    plt.ylabel('y', fontsize=19)

    plt.legend()

    plt.show()

    作图可以看到,当迭代步数较多后,欧拉法的结果逐渐落后于精确指数解的增长速度。下面分析欧拉法的误差来源。

    中,略去了高阶小量

    ,因此在每一步的递推中,都有局部截断误差

    ,其阶为

    在计算中,我们更关心精确解和数值解之间的误差

    ,称为整体误差,其满足

    根据Lipschitz条件,可得:

    ,可得:

    局部截断误差

    的二阶量,设

    ,得:

    ,整体误差是

    的一阶量。同理可得,改进的欧拉法局部截断误差

    的三阶量

    ,整体误差是

    的二阶量

    稳定性分析

    如果计算的初值不能精确给定,例如存在测量、舍入误差等,在计算过程中,每一步传递的误差连续依赖于初始误差,则称算法稳定,否则该算法不稳定。

    对于不同的初值

    ,有

    两式相减,得:

    根据Lipschitz条件,可得:

    连续依赖于初始误差,欧拉法稳定。同理,改进的欧拉法也稳定。

    龙格-库塔法

    龙格库塔法的主要思想:在

    点的附近选取一些特定的点,然后把这些点的函数值进行线性组合,使用组合值代替泰勒展开中

    点的导数值。

    泰勒展开:

    ,根据多元函数求导法则有:

    以此类推,可以得到:

    同时,我们可以写出泰勒展开的形式解:

    其中:

    通项为:

    基本思路是,利用当前点的函数值

    可以计算出

    ,然后引入参数

    和步长

    可以计算出

    ,之后使用

    和步长

    计算

    ,以此类推,直到

    现在把

    展开:

    代入得:

    代入

    可得:

    与泰勒展开式

    相比较,可知:

    2个方程有3个未知数,因此有无穷多个解,可采用

    ,则:

    ,可以改写为:

    此即为二阶龙格-库塔法。

    与上一节的欧拉法公式对比:

    ,因此二阶龙格-库塔法取参数

    时,即为改进的欧拉法。

    Python计算实例

    仍以

    为例,其精确解为

    ,使用二阶龙格-库塔法求解的Python代码如下:

    import math

    from matplotlib import pyplot as plt

    t_0 = 0

    y_0 = 1

    z_0 = 1

    tau = 0.1

    i = 1

    j = 1

    solve = []

    Euler = []

    R_K = []

    t = []

    while i < 100:

    if i == 1:

    y_n = y_0

    t_n = t_0

    R_K.append(y_n)

    solve.append(math.exp(t_n))

    t.append(t_n)

    func_n = y_n

    func_m = y_n + tau * func_n

    y_n = y_n + 0.5 * tau * (func_n + func_m)

    t_n = t_n + tau

    i += 1

    t = []

    while j < 100:

    if j == 1:

    z_n = z_0

    t_n = t_0

    Euler.append(z_n)

    t.append(t_n)

    func = z_n

    z_n = z_n + tau * func

    t_n = t_n + tau

    j += 1

    plt.scatter(t, R_K, marker='^', c='blue', s=70, label=' R-K method')

    plt.plot(t, Euler, c='green', label=' Euler method')

    plt.plot(t, solve, c='red', label=' accuracy')

    plt.fill_between(t, solve, Euler, facecolor='yellow', alpha=0.2)

    plt.title('Euler method & R-K method', fontsize=19)

    plt.xlabel('t', fontsize=19)

    plt.ylabel('y', fontsize=19)

    plt.legend()

    plt.show()

    黄色部分表示数值解和精确解的偏离,可以看到,二阶龙格-库塔法(改进的欧拉法)精确度得到了很大的提升。

    二阶龙格-库塔法中,泰勒展开到了

    阶,通过与泰勒展开系数进行对比,可以得到含3个未知数的2个方程。依次类推,如果泰勒展开到了

    阶,对比

    可以得到

    阶龙格-库塔法。常用经典四阶龙格-库塔法:

    Reference:

    1、周善贵,《计算物理》课程讲义

    2、李荣华,刘播,《微分方程数值解法》

    3、王仁宏,《数值逼近》

    展开全文
  • * * 第14讲 数值计算 常微分方程 张建瓴 内容提要 在科学研究和工程教学中会经常遇到常微分方程 只含有一个自变量的微分方程称为常微分方程(Ordinary Differential EquationsODE)它或者没有解析解或者求取解析解的...
  • 微积分学PPt标准高阶系数线性微分方程欧拉方程PPT学习教案.pptx
  • 一阶常微分方程欧拉法与梯形公式局部截断误差与p阶精度Range* 一阶常微分方程 欧拉法与梯形公式 局部截断误差与p阶精度 Range-Kutta公式 常微分方程MATLAB求解 《数值分析》 23 ? ? ? ? ? 例1.一阶常微分方程 求解...

    一阶常微分方程欧拉法与梯形公式局部截断误差与p阶精度Range

    * 一阶常微分方程 欧拉法与梯形公式 局部截断误差与p阶精度 Range-Kutta公式 常微分方程MATLAB求解 《数值分析》 23 ? ? ? ? ? 例1.一阶常微分方程 求解区域: 0≤ x ≤ 1.5 2/16 解曲线的斜率 转化为方向余弦 例2. Logistic模型 初值条件y(0)=0.2 一阶常微分方程初值问题: 数值方法——取定离散点: x0 < x1 < x2 < ··· < xN 其中, y = y(x) 是未知函数, 右端函数 f(x, y )是已知函数, 初值 y0 是已知数据。 求未知函数 y(x) 在离散点处的近似值 y1, y2, y3, ·····, yN 3/16 ? 4/16 取定步长: h,记 xn = x0 + nh, ( n = 1,2, ···, N ) Euler公式: yn+1 = yn + h f( xn, yn ) 求近似解: y’ = f (x, y) 梯形公式: 左矩形公式 用数值积分方法离散化常微分方程 6/16 ? 预-校方法又称为修正的Euler法,算法如下 k1 = f(xn , yn) , k2 = f( xn+1 , yn+ h k1) , 由梯形公式推出的预-校方法: 7/16 ? 设 yn= y(xn), 称 Rn+1=y(xn+1) - yn+1为局部截断误差. 即 由泰勒公式 Euler公式: yn+1 = yn+ hf (xn, yn) 的局部截断误差 y(xn+1) – yn+1=y(xn) – yn+ O(h2) = O(h2) 9/16 Euler公式的局部截断误差记为: O(h2) 称Euler公式具有1阶精度。 若局部截断误差为: O(h p +1) 则称显式单步法具有 p 阶精度 。 例 3 证明修正的Euler法具有2阶精度 14/16 将预测公式 代入 得 yn+1 = yn + 0.5h[f(xn,yn)+f(xn+1, yn+hf(xn, yn))] f(xn+1, yn+hf(xn, yn))= f(xn+h, yn+hf(xn, yn)) = f (xn, yn)+h[fx’]n + hf(xn,yn) [fy’]n + O(h2) ? 利用台劳展开式 y(xn+1)=y(xn)+hy’(xn)+0.5h2y”(xn)+O(h3) 0.5h[f(xn,yn)+f(xn+1, yn+hf(xn, yn))] =hy’(xn)+0.5h2y”(xn)+ O(h3) 局部截断误差: y(xn+1) – yn+1 = y(xn) – yn =O(h3) 故修正的Euler法具有2阶精度。 11/16 yn+1 = yn + hy’(xn)+0.5h2y”(xn)+ O(h3) 三阶Range-Kutta公式一般形式 yn+1= yn+ h[k1+4k2+k3]/6 k1=f(xn,yn), k2=f(xn+0.5h, yn+0.5hk1) k3=f(xn+h, yn – hk1+2hk2) 四阶Range-Kutta公式一般形式 yn+1= yn+ h[k1+2k2+2k3+k4]/6 k1=f(xn,yn), k2=f(xn+0.5h, yn+0.5hk1) k3=f(xn+0.5h, yn+0.5hk2), k4=f(xn+h, yn+hk3) 12/16 例4 数值实验:几种不同求数值解公式的误差比较 n 10 20 30 40 h 0.2 0.1 0.0667 0.05 RK4 6.862e-005 3.747e-006 7.071e-007 2.186e-007 RK3 0.0012 1.529e-004 4.517e-005 1.906e-005 RK2 0.0123 0.0026 0.0011 5.9612e-004 Euler 0.1059 0.0521 0.0342 0.0256 13/16 *

    展开全文
  • 欧拉法解常微分方程.doc数学与计算科学学院实 验 报 告实验项目名称 Eular方法求解一阶常微分方程数值解 所属课程名称 偏微分方程数值解 实 验 类 型 验证性 实 验 日 期 2015-3-26 班 级 学 号 姓 名 成 绩 一、...
  • matlab 常微分方程数值解法 源程序代码所属分类:其他开发工具:matlab文件大小:16KB下载次数:41上传日期:2019-02-13 11:03:29上 传 者:XWLYF说明:11.1 Euler方法 38011.1.1 Euler公式的推导 38011.1.2 Euler...
  • 利用欧拉方法计算常微分方程,寻找常微分方程的数值解
  • 欧拉法解常微分方程

    2018-10-14 11:47:52
    除MATLAB系统的求解工具外,欧拉法求解常微分方程的MATLAB语言
  • 计算方法实验实+常微分方程+欧拉法、改进欧拉法、四阶龙格库塔法
  • %欧拉法解一阶常微分方程%例子dy/h=-y+x+1%f=inline('-y+x+1','x','y'); %微分方程的右边项f = inline('x-2*y','x','y');y0 = 2; %初始条件h = 0.025; %步长xleft = 0; %区域的左边界xright = 1; %区域的右边界x = ...
  • 改进欧拉法与上一篇中实例相比,改进欧拉法多了一步修正过程,正是应为有了该一步修正过程使得数值解法具有更高一级精度。 先看下面两幅图,第一幅是没有改进的欧拉...代码如下:%微分方程数值解法----欧拉法测试 %--
  • 本文档利用 C 语言编写求解常微分方程的方法,包括改进欧拉方法求解常微分方 程的初值问题,以及四阶龙格-库塔法求解常微分方程的初值问题。程序均采用 txt 文 件输入输出方式。 /* 改进欧拉方法求解常微分方程的...
  • manlab软件应用试验题目专业 序号 姓名 日期实验3 常微分方程数值解【实验目的】1.掌握用MATLAB求微分方程初值问题数值解的方法;2.通过实例学习微分方程模型解决简化的实际问题;3.了解欧拉方法和龙格库塔方法的...
  • 05常微分方程数值解.ppt第五章,常微分方程数值解法,(Numerical s for Ordinary Differential Equations ),常微分方程分为 (1)初值问题 (2)边值问题,一、初值问题的数值解法,1 引 言,一阶常微分方程初值问题的一般...
  • 欧拉法求常微分方程
  • 欧拉法解常微分方程.doc
  • 《第五章:常微分方程数值解法第一节欧拉法》由会员分享,可在线阅读,更多相关《第五章:常微分方程数值解法第一节欧拉法(32页珍藏版)》请在人人文库网上搜索。1、第五章 常微分方程数值解 /* Numerical Methods ...
  • 但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于一般形式的微分方程,一般很难用解析方法求出精确解,只能用数值方法求解。而在具体求解微分方程中,一般来说是条件是 KaTeX parse ...
  • 微分方程数值解第一次报告徐松松41345053计1304 一:实验目的掌握MATLAB语言、C/C++语言编写计算程序的方法、掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题。掌握使用MATLAB程序求解常微分方程问题的...
  • 《第五章:常微分方程数值解法第一节欧拉法》由会员分享,可在线阅读,更多相关《第五章:常微分方程数值解法第一节欧拉法(32页珍藏版)》请在人人文库网上搜索。1、第五章 常微分方程数值解 /* Numerical Methods ...
  • 这里分别介绍怎么利用sympy.dsolve求解常微分方程常微分方程组。#首先利用sympy.dsolve求解单个的常微分方程:#代码from sympy import Function, dsolve, Derivative, symbolsfrom sympy.abc importt#sympy.abc...
  • 常微分方程 数值解法 h为步长; f为传入函数 欧拉方法 function [x, y] = Euler(x0, x1, y0, h, f) n = floor((x1 - x0) / h); x = zeros(n + 1, 1); y = zeros(n + 1, 1); x(1) = x0; y(1) = y0; for i = 1 : n x...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,473
精华内容 589
关键字:

常微分方程欧拉方程