1.数值微分与数值积分

数值微分

MATLAB提供了求向前差分的函数diff,其调用格式有三种:

  • dx=diff(x):计算向量x的一阶向前差分,dx(i)=x(i+1)-x(i),i=1,2,…,n-1。
  • dx=diff(x,n):计算向量x的n阶向前差分。例如,diff(x,2)=diff(diff(x))
  • dx= diff(A, n, dim):计算矩阵A的n阶差分,dim=1时(默认状态),按列计算差分;dim=2,按行计算差分。

数值积分

  • 基于自适应辛普森方法
    [l, n]=quad(filename, a, b, tol, trace)
  • 基于自适应 Causs-Lobatto方法
    [I, n]=quadI(filename, a, b, tol, trace)
    其中, filename是被积函数名;a和b分别是定积分的下限和上限,积分限[a,b]必须是有限的,不能为无穷大(lnf);tol用来控制积分精度,默认时取tol=10-6; trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,默认时取trace=0;返回参数I即定积分的值,n为被积函数的调用次数。
  • 基于全局自适应积分方法
    I=integral(filename, a, b)
    其中,I是计算得到的积分; filename是被积函数;a和b分别是定积分的下限和上限,积分限可以为无穷大。
  • 基于自适应高斯-克朗罗德方法
    [I,err]=quadgk(filename, a, b)
    其中,err返回近似误差范围,其他参数的含义和用法与quad函数相同。积分上下限可以是无穷大(-Inn或Inf),也可以是复数。如果积分上下限是复数,则 quadgk函数在复平面上求积分。
  • 基于梯形面积法则求积分
    trapz(x,y),y是x的函数。

多重积分

求二重积分的数值解:

  • I=integral(filename, a, b, c, d)
  • I=quad2d(filename, a, b, c, d)
  • I=dblquad(filename, a, b, c, d, tol)

求三重积分的数值解:

  • I=integral3(filename, a, b, c, d, e, f)
  • I=triplequad(filename, a, b, c, d, e, f, tol)

2.线性方程组求解

  • 直接法:以矩阵初等变换为基础,可以求得方程组的精确解;占用的内存空间大、程序实现较为复杂;一般适合求解低阶稠密线性方程组。
  • 迭代法:从绐定初始值逐步逼近精确解,的过程,求解过程占用存储空间小、程序设计简单;适用于求解大型稀疏矩阵线性方程组;要考虑算法的收鲛性。

线性方程组的直接解法

(1)利用左除运算符的直接解法
Ax=b ——x=A\b
注意:如果矩阵A是奇异的或接近奇异的,则MATLAB会给出警告信息。

(2)利用矩阵分解求线性方程组

  • LU分解
    将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积

    [L,U]=lu(A):产生一个上三角阵U和一个变换形式的下三角阵L,使之满足A=LU。注意,这里的矩阵A必须是方阵。
    [L,U,P]=lu(A):产生一个上三角阵U和一个下三角阵以及个置换矩阵P,使之满足PA=LU。同样,矩阵A必须是方阵。

  • QR分解
  • Cholesky分解

线性方程组的迭代解法

  • 雅克比(Jacobi)迭代法

    定义y为方程组的解,n为迭代次数,A为系数矩阵,b为列向量,x0为初值,ep为要求的范数。
  • 高斯-赛德尔(Gauss-Serdel)迭代法

3.线性方程组应用举例

平面桁架结构受力分析问题


小行星运行轨道计算问题



4.非线性方程求解与函数极值计算

非线性方程数值求解

(1)单变量非线性方程求解
函数的调用格式为:
x=fzero(filename,x0)
其中, filename是待求根方程左端的函数表达式,x0是初始值。

(2)非线性方程组的求解
函数的调用格式为:
x=fsolve(filename, X0, option)
其中,x为返回的近似解, filename是待求根方程左端的函数表达式,x0是初值, option用于设置优化工具箱的优化参数,可以调用optimset函数来完成。

函数极值的计算

MATLAB只能求最小值,若求最大值,可以转化为求-f(x)的最小值。
(1)无约束最优化问题
求最小值的函数:
[xmin,fmin]=fminbnd(filename,x1,x2,option)
[xmin,fmin]=fminsearch(filename,x0,option)
[xmin,fmin]=fminunc(filename,x0,option)

其中, filename是定义的目标函数。第一个函数的输入变量x1、x2分别表示被研究区间的左、右边界。后两个函数的输入变量x0是一个向量,表示极值点的初值。 option为优化参数,可以通过 optimise函数来设置

(2)有约束最优化问题
求有约束条件下最小值的函数为
[xmin,fmin]=fmincon(filename, x0, A, b, Aeq, beq. Lbnd, Ubnd, NonF, option)

其中,xmin、fmin、 filename、x0和 option的含义与求最小值函数相同。其余参数为约束条件,包括线性不等式约束、线性等式约束、x的下界和上界以及定义非线性约束的函数。如果某个约束不存在,则用空矩阵来表示。

5.常微分方程数值求解

常微分方程数值求解的一般概念

  • 单步法:在计算yn+1时只用到前一步的yn,因此在有了初值之后就可以逐步往下计算,其代表是龙格-库塔( RUnge-Kutta)法
  • 多步法:在计算yn+1时,除了用到前一步的值yn之外,还要用到yn-p(p=1,2,…,k,k>0)的值即前面的k步,其代表就是亚当斯(Adams)法。

常微分方程数值求解函数

函数调用格式为:
[t, y]=solver(filename, tspan, y0, option)
其中,t和y分别给出时间向量和相应的数值解; solver为求常微分方程数值解的函数; filename是定义f(t,y)的函数名,该函数必须返回一个列向量; tspan形式为[t0,tf],表示求解区间;y0是初始状态向量;option是可选参数,用于设置求解属性。

常微分方程数值求解函数的统一命名格式:
odennxx
其中,ode是 Ordinary Differential Equation的缩写,是常微分方程的意思;nn是数字,代表所用方法的阶数;xx是字母,用于标注方法的专门特征。

刚性问题

有一类常微分方程,其解的分量有的变化很快,有的变化很慢,且相差悬殊,这就是所谓的刚性问题(stiff)。
刚性问题调用ode函数中将xx设置为s。

6.常微分方程应用举例

Lotka-Volterra模型









Lotka-Volterra改进模型



数值微积分与方程求解相关推荐

  1. 6.数值微积分与方程求解

    数值微分与数值积分 % 数值积分 (有函数式版本定积分) 方法1 % [I,n]=quad(filename,a,b,tol,trace)  基于自适应辛普森方法 % [I,n]=quadl(file ...

  2. 6. 数值微积分与方程求解

    文章目录 A 数值微分与数值积分 A.a数值微分(diff) A.b 数值积分 B 线性方程组求解 B.a 直接法 B.b 迭代法 B.c 线性方程组应用举例 C 非线性方程求解与函数极值计算 C.a ...

  3. 专题六数值微积分与方程求解

    文章目录 一.数值微分与数值积分 1.数值微分 2.数值积分 二.线性方程求解 1.直接法 2.迭代解法 3.直接法与迭代法的对比 三.非线性方程求解与函数极值计算 1.非线性方程数值求解 2.函数极 ...

  4. 数学建模之matlab软件学习06——专题六 数值微积分与方程求解

    #本文章仅用于记录本人学习过程,当作笔记来用,如有侵权请及时告知,谢谢! 6.1 数值微分与数值积分 数值微分 6.2 6.3 线性方程组应用举例: 平面桁架结构受力分析问题 小行星运行轨道计算问题: ...

  5. matlab积分练习,matlab练习之数值微积分和方程数值求解

    一.符号积分 求符号积分函数:int 格式:int(f,x,a,b) 功能:计算定积分 格式:int(f,x) 功能:计算不定积分 使用int函数之前,先用syms声明x是符号变量 例: 代码: sy ...

  6. matlab整理符号表达式,[2018年最新整理]MATLAB符号运算与符号方程求解.ppt

    [2018年最新整理]MATLAB符号运算与符号方程求解 MATLAB符号计算 1 符号对象 2 符号微积分 3 级 数 4 符号方程求解 9.1 符号对象 9.1.1 建立符号对象 1.建立符号变量 ...

  7. 偏微分方程数值解法python_Python数值计算----------求解简单的偏微分方程

    很多物理现象的都可以用方程来描述,比如热传导与物质扩散可以用扩散方程来描述,流体的流动可以用NS方程描述等等.如果能够将这些偏微分方程求解出来,就可以来对很多物理现象进行仿真,现在工程中的仿真软件都是 ...

  8. 【计算方法】数值微积分

    0.WARNINGS 本文章主要适用于计算方法代码的实现参考,由于本人是python究极小白,为了实验课速成了一些内容,因此会包含较多的暴力解法orz,如有代码错误.可优化的地方欢迎各位大佬指出,感激 ...

  9. 011 符号计算-积分、微分、极限、积分变换、方程求解

    符号微积分计算 0.符号函数 >>syms x >> f(x)=2*xf(x) = 2*x>> f(1)ans = 2 >> g=2*x %g只是符号变 ...

最新文章

  1. spring是如何解析自己的配置文件的
  2. lnmp之mysql原码编译
  3. Cannot call sendRedirect() after the response has been committed解决方法
  4. 6.排序算法最优的时间复杂度
  5. javaweb----DAO模型设计
  6. 2021年7月 虾皮、货拉拉、有赞等面经总结
  7. 四阶龙格库塔c语言,四阶龙格库塔算法的C语言实现
  8. 实验二 /*网络嗅探与身份验证*/
  9. 三维CAD/CAM软件SINOVATION 10 中文注册版
  10. 光环python培训
  11. 打印DPI如何与计算机DPI一致,像素英寸与dpi的那些事儿
  12. antd输入框禁止回车
  13. python游戏功能_python 游戏(龙的国度)
  14. 【redis】ERR AUTH <password> called without any password configured for the default user解决
  15. [开心IT面试题] 关于50个人50条狗有几条病狗的推算
  16. 计算机cs怎么使用技巧,CS里的fps设置方法(显卡篇)
  17. SpringBoot之自动装配原理
  18. 【数据分析学习笔记day09】数据分析实战案例:2016美国大选民意调查统计+2016年美国总统大选民意调查数据统计+示例代码1 +示例代码2:
  19. 只因,在人群中多看了你一眼 (小说)
  20. 王道出版的机试指南_王道论坛计算机考研机试指南 四 排版题

热门文章

  1. Java应用:图片叠加
  2. DeFi黑暗森林历险记,我这样追回了百万美元
  3. qnap raid5升级raid6_实践出真知!100TB的RAID5到底能否重建成功?
  4. timesat数据如何读取_判二手车调表车另类方法。如何利用OBD读取可靠数据(技术类)...
  5. 平板为何无法用无线网连接媒体服务器,我家装了无线路由器后,台式机老是断网但是平板电脑却能连接无线网络上网...
  6. 使用Excel连接WINCC生成报表的实现方法
  7. oracle学习笔记(四)-- 数学函数
  8. 电源设计那些事儿-ppt01
  9. 大漠穷秋叫狼哥哥要学好的书
  10. java 泛型参数具体类型获取、泛型返回具体类型获取