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. mac os 安装linux驱动,教程:Ubuntu 14.04安装Mac OS X主题
  2. js 中 document.createEvent的用法-转载
  3. 使用response的writer
  4. 模拟天天酷跑游戏java_cocos2d 简单高仿天天酷跑游戏
  5. iPhone 13系列要上全新配色:全系存储容量调整
  6. 帆软报表属性设计基础
  7. mysql 存储过程 光标_mysql存储过程 光标
  8. cmake 学习笔记(三)
  9. 文本编辑器android,Editor简单通用文本编辑器
  10. Android:ViewPage使用教程
  11. sqliteman安装时出现The following packages have unmet dependencies: libqtgui4 : Depends: libpng12-0错误
  12. Spring-AOP模块的Advised分析
  13. 游戏人机交互接口的设计
  14. netlogon启动后停止_【漏洞通报】微软NetLogon提权漏洞
  15. sql server 函數
  16. Access violation reading location 0xccccccc0运行异常的解决方法
  17. 【原创】java+swing+mysql教室管理系统设计与实现
  18. Hexo+Buttterly+Github Pages构建个人博客
  19. html超级玛丽游戏源码,超级玛丽HTML5源代码学习------(一)
  20. HDU - 1248 寒冰王座 (完全背包

热门文章

  1. rasp 系统_RASP 完爆 WAF 的5大理由!
  2. 别头疼了,你要的算法和数据结构的学习路线来了!
  3. gz rar zip 7z bz2 tgz压缩率比较,以及做一些简单的关于压缩包介绍
  4. 蓝牙(三)蓝牙协议的初始化
  5. yolov5-4.0转caffe记录
  6. 为Linux内核text段计算SHA1摘要以检测篡改
  7. html5手机远程控制电脑,教你怎么用手机远程控制电脑
  8. 黑客如何入侵你的汽车?
  9. ci框架 反向代理配置_docker-compose配置Nginx反向代理禅道
  10. NTL(Number Theory Library)源码剖析(2)__基本运算