Matlab数值微分与数值积分

  • 1.2 数值微分的实现

有两种方式计算任意函数f(x)在给定点x的数值导数:

用多项式或样条函数g(x)对f(x)进行逼近(插值或拟合),然后用逼近函数g(x)在点x处的导数作为f(x)在点x处的导数;

用f(x)在点x处的某种差商作为其导数。

在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,按行计算差分。

例: 设x由[0,2π]间均匀分布的6个点组成,求sinx的1~3阶差分。

在这里插入图片描述

例:用不同的方法求下列函数f(x)的数值导数,并在同一个坐标系中做出f '(x)的图像。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 数值积分

  • 2.1 数值积分基本原理

现有:

在这里插入图片描述

在求任意函数f(x)在[a,b]上的定积分时,可以寻找一个在[a,b]上与f(x)逼近,但形式上却简单且易于求积分的函数p(x),用p(x)在[a,b]上的积分值近似地代替f(x)在[a,b]上的积分值,一般选择被积函数的插值多项式充当这样的替代函数。选择的插值多项式的次数不同,就形成了不同的数值积分公式。

对被积函数f(x)采用一、二次多项式插值,然后对插值多项式求积分,就得到了几个常见的数值积分公式:

在这里插入图片描述

  • 2.2 数值积分的实现
  1. 基于变步长辛普森法,MATLAB给出了quad函数和quadl函数来求定积分。函数的调用格式为:

[I,n]=quad(filename,a,b,tol,trace)

[I,n]=quadl(filename,a,b,tol,trace)

filename:被积函数名;

a和b:定积分的下限和上限,

tol:用来控制积分精度,默认时取tol=10-6;

trace:控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,默认时取trace=0;

I:定积分值,

n:被积函数的调用次数。

例:就下列函数积分

在这里插入图片描述在这里插入图片描述

例: 分别用quad函数和quadl函数求函数的近似值,并在相同的积分精度下,比较函数的调用次数。

在这里插入图片描述在这里插入图片描述

2.自适应积分法

  • MATLAB提供了基于全局自适应积分算法的integral函数来求定积分,函数的调用格式为:

I=integral(filename,a,b)

其中,I是计算得到的积分;filename是被积函数;a和b分别是定积分的下限和上限,积分限可以为无穷大 。

例:求下列积分函数

在这里插入图片描述

在这里插入图片描述

3.高斯-克朗罗德法

  • MATLAB提供了基于自适应高斯-克朗罗德法的quadgk函数来求振荡函数的定积分。该函数的调用格式为

[I,err]=quadgk(filename,a,b)

其中,err返回近似误差范围,其他参数的含义和用法与quad函数相同。积分上下限可以是−Inf或Inf,也可以是复数。如果积分上下限是复数,则quadgk在复平面上求积分。

求下列积分函数:

在这里插入图片描述

在这里插入图片描述

4.梯形积分法

  • 在科学实验和工程应用中,函数关系表达式往往是不知道的,只有实验测定的一组样本点和样本值,这时,人们就无法使用quad等函数计算其定积分。在MATLAB中,对由表格形式定义的函数关系的求定积分问题用梯形积分函数trapz,其调用格式为:

I=trapz(X,Y)

其中,向量X、Y定义函数关系Y = f(X)。X、Y是两个等长的向量:X = (x1,x2,…,xn),Y = (y1,y2,…,yn),并且x1<x2<…<xn,积分区间是[x1,xn]。

例:求下列积分函数

在这里插入图片描述

在这里插入图片描述

5.累计梯形积分

  • 在MATLAB中,提供了对数据积分逐步累计的函数cumtrapz。该函数调用格式如下。

Z=cumtrapz(Y)

Z=cumtrapz(X,Y)

对于向量Y,Z是一个与Y等长的向量;对于矩阵Y,Z是一个与Y相同大小的矩阵,累计计算Y每列的积分。函数其他参数的含义和用法与trapz函数的相同。

例:

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

结尾

查漏补缺:Java岗 千+道面试题Java基础+全家桶+容器+反射+异常等

这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值