MATLAB中的微积分运算(数值符号)

 

显然这个函数是单词differential(微分)的简写,用于计算微分。实际上准确来说计算的是差商。

如果输入一个长度为n的一维向量,则该函数将会返回长度为n-1的向量,向量的值是原向量相邻元素的差,于是可以计算一阶导数的有限差分近似。

(1)符号微分

 1.常用的微分函数

函数:diff(f)     求表达式f对默认自变量的一次微分值

       diff(f,x)  求表达式f对自变量x的一次积分值

       diff(f,n)  求表达式f对默认自变量的n次微分值

       diff(f,t,n)求表达式f对自变量t的n次微分值

>> x=1:10
x =1     2     3     4     5     6     7     8     9    10
>> diff(x)
ans =1     1     1     1     1     1     1     1     1

  

例1:求矩阵中各元素的导数

求矩阵[1/(1+a)  (b+x)/cos(x)

         1/(x*y)   exp(x^2)]

对x的微分,可以输入以下命令

A = sym('[1/(1+a),(b+x)/cos(x);1,exp(x^2)]');
B = diff(A,'x')

 可得到如下结果:

 

例2:求偏导数

的偏导数。

syms x y;
f = x*exp(y)/y^2;
fdx = diff(f,x)
fdy = diff(f,y)

 可得到如下结果:

 

例3:求复合函数的导数

的导数

sym('x');
y = 'x*f(x^2)'
y1 = diff(y,'x')

 得到结果如下:

例4:求参数方程的导数

对参数方程求导

syms a b t
f1 = a*cos(t);
f2 = b*sin(t);
A = diff(f2)/diff(f1) %此处代入了参数方程的求导公式
B = diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/diff(f1)^3  %求二阶导数

 可得到如下结果:

例5:求隐函数的导数

的一阶导数

 

syms x y
p = 'x*y(x)-exp(x+y(x))'
%隐函数可进行整体表示
%注意y(x)这种写法,它代表了y是关于x的函数
p1 = diff(p,x)

 可得到如下结果:

2.符号积分

 1符号函数的不定积分

函数:int

功能:求取函数的不定积分

语法:

         int(f)   

         int(f,x)

说明:第一个是求函数f对默认自变量的积分值;第二个是求自变量f对对自变量t的不定积分值。

 

例:分别求函数f(x)=(3-x23的不定积分。

x = sym('x');
%函数的输入 f1 = (3-x^2)^3; f2 = sqrt(x^3 + x^4);
%对函数进行积分 intf1 = int(f1) intf2 = int(f2)

 可得结果如下:

 

2符号函数的定积分

函数:int

功能:求取函数的定积分

语法:

         int(f,a,b)

         int(f,x,a,b)

说明:第一个是求表达式f对默认自变量的定积分值,积分区间为

[a,b];第二个是求表达式f对自变量x的定积分值,积分区间为[a,b]。

例:分别求的定积分。

syms x t%输入函数方程式
f1 = abs(1-x);
f2 = 1/(1+x^2);
f3 = 4*t*x;
f4 = x^3/(x-1)^100;%求取函数积分
intf1 = int(f1,1,2)
intf2 = int(f2,-inf,+inf)
intf3 = int(f3,2,sin(t))
intf4 = int(f4,2,3)

 可得到如下结果:

 

(2)数值微分

在MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数diff。

函数:diff

功能:求取数值微分

语法:

          DX = diff(X)

          DX = diff(X,n)

          DX = diff(X,n,dim)

说明:第一个计算向量X的向前差分,即DX(i) = X(i+1)-X(i),i=1,2,...,n-1。第二个是计算X的n阶向前差分。例如,diff(X,2)=diff(diff(X))。第三个计算矩阵A的n阶差分,当dim=1或缺省状态时,按行计算差分;dim=2,按列计算差分。

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

x = linspace(0,2*pi,10);
y = sin(x);
Dy = diff(y)
Dy2 = diff(y,2)
Dy3 = diff(y,3)
plot(x,y,'B');hold on
plot(Dy,'Y');plot(Dy2,'G');plot(Dy3,'R');
title('sinx的1到3阶差分')
xlabel('x');ylabel('y')

 

可得到结果如下

图形如下:

注:二维图形常用设置选项

例:求函数的数值微分,并画出函数图比较

x = 0:0.01:2 %数值微分&积分需要先确定数值的范围,这一点与符号微分&积分有所不同。
f = x.^2.*cos(x)./(3*x+2)
Df = diff(f)
plot(x,f,'r')
hold on
y = x(1:200);
plot(y,Df,'b')
legend('函数图','微分图')

  

可得到如图所示图线

数值积分

求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)法、牛顿-科特斯(Newton-Cotes)法等都是经常采用的方法。他们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i = 1,2,…,n,其中x1=a,xn+1=b。这样求定积分问题就变成了求和问题。

1、变步长辛普森法

基于变步长辛普森法,MATLAB给出了quad函数来求定积分。

函数:quad

功能:求取基于变步长辛普森法的数值定积分。

语法:[I,n]=quad('fname',a,b,tol,trace)

说明:fname是被积函数名(需要新建一个函数)。a和b分别是定积分的上限和下限。tol用来控制积分精度,缺省时取tol = 10-6,。trace控制是否展现积分过程,取非0为展现积分过程,取0则不展现,缺省时trace = 0.返回参数I即定积分值,n为被积函数的调用次数。

例:用变步长辛普森法计算函数f(x)=e-0.2xsin(x+π/3)在区间[0.3π]的定积分

首先建立被积函数文件fesin.m

function f = fesin(x)
f = exp(-0.2*x).*sin(x+pi/3);

  

然后调用数值积分函数quad来求定积分

[S,n] = quad('f',0,3*pi)

  

2、牛顿-科斯特法

在MATLAB中,使用Newton-Cotes来求取定积分函数为quadl。

函数:quadl

功能:基于Newton-Cotes法来求数值定积分

语法:[I,n] = quadl('fname',a,b,lol,trace)

说明:参数的含义和quad函数相似,只是tol的缺省值取10-6。该函数可以更精确地求出定积分的值,且一般情况下函数调用的步数明显小于quad函数,从而保证以更高的效率求出所需的定积分值。

 

转载于:https://www.cnblogs.com/BJTU-WHC/p/5481412.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑手写板_点到之处妙笔生花,实用平板电脑手写电容笔推荐

如今随着科技的不断发展,人们生活水平也在逐步地提升。除了手机以外,很多人都会给自己入手一款平板电脑。不管是观看电影还是游戏办公,大尺寸的屏幕都能带来更加清晰的视觉效果。而电容笔的出现,可以说跟平板电脑是一组巧妙的搭配…

图像处理:给验证码图片做降噪处理及数据清洗

上一篇博文:https://blog.csdn.net/qq_40962368/article/details/89312429 图像处理:给验证码图片做降噪处理及数据清洗 在上一篇博文中,tesseract对验证码识别的准确率还是非常低的,改进措施的话,可以从三个方面来考…

X-Brain:如此美丽可爱的大脑工作原理

这个帖子很好地提醒了我,为什么我愿意跟如此美丽可爱的大脑一起工作。因为真正的大脑非常不可爱,长得也难看。我们从外往里看吧。生物学有时似乎非常让人满意,比如你的头上有一个真正的俄罗斯套娃。你有头发,然后是头皮&#xff0…

SpringMVC注解@RequestParam全面解析

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解RequestParam直接获取。这里主要讲这个注解 一、基本使用,获取提交的参数 后端代码: Java代码 RequestMapping(…

MATLAB(六)数据处理

一、Matlab中的默认数据文件mat文件 例1、把Matlab工作空间中的数据矩阵a、b、c保存到数据文件data1.mat中。 >> a [1, 2, 3] a 1 2 3 >> b [4, 5, 6] b 4 5 6 >> c [7, 8, 9] c 7 8 9 >> save data1 a b c 例2、把例1生…

java怎么安装_Windows、Linux、Mac下安装JDK

前言在知乎上看到很多童鞋在学Java的时候,因为安装jdk时没有正确的配置,会遇到很多问题。所以决定今天写一下jdk在Windows、Mac、Linux下都怎么安装。下载JDK“巧妇难为无米之炊”,所以首先我们要去Oracle官网上下载jdk,Java8下载…

200年历史的神经科学难题,取得重大突破

图片来源:Diogo Matias,Champalimaud基金会来源:中国生物技术网北京时间8月13日,发表在《Nature Neuroscience》上的一项研究,来自葡萄牙里斯本Champalimaud未知中心的研究团队解决了一个长达200年历史的神经科学难题。…

关系数据库SQL之可编程性触发器

前言 前面关系数据库SQL之可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数、存储过程、事务、触发器及游标,前文已介绍了函数、存储过程、事务,本文来介绍一下触发器的使用。(还是以前面的银行系统为例) 概…

图像处理:图像特效之油画效果

利用OpenCVpython对图片进行处理产生油画的效果 算法可以分为五步: 1、获取图像的灰度(gray)图片2、设计一个小方框(4x4 or 8x8 or 10x10等),统计每个小方框的像素值3、将0-255的灰度值划分成几个等级,并把第二步处理…

socket模拟http的登陆_python模拟登陆知乎(最新版)

为啥要写这一篇文章呢?(主要是qq群内有人在模拟登陆知乎,一直不成功)然后我抓包看了下,发现知乎登陆页已经改版了,而且难度大大提高了。开始抓包首先内,还是打开知乎首页,然后输入账…

图像识别:利用KNN实现手写数字识别(mnist数据集)

图像识别:利用KNN实现手写数字识别(mnist数据集) 步骤: 1、数据的加载(trainSize和testSize不要设置的太大) 2、k值的设定(不宜过大) 3、KNN的核心:距离的计算 4、k个最近…

一个与生命起源有关的悖论终于得到了解决

来源:原理当Caitlin Cornell低头看显微镜时,她看见黑色的背景下浮现出一些大大的明亮斑点。它们就像微缩的太阳,在深色的太空幕布下闪耀着光芒。Conell回忆起把这些斑点展示给她的导师Sarah Keller时的兴奋,那时她们意识到&#x…

python ffmpy3与FFmpeg的安装

python ffmpy3与FFmpeg的安装 安装命令: pip install ffmpy3 去官网下载FFmpeg,根据自身电脑版本下载相应安装包 http://ffmpeg.org/download.html from ffmpy3 import FFmpeg ff FFmpeg(inputs{test.mp4: None},outputs{output.ts: None}) print(f…

千兆网线8根线定义图_家中的网线断裂/不够长,如何接线才最合适?

网线作为互联网时代不可或缺的主角,更是家装布线和工程施工中的常客。网线相对来说是很脆弱的,特别是一些质量一般的网线,在很多情况下都可能会被弄断,比如老鼠咬、过度拉伸、摆在地下人踩的人多了、电起火烧断、不小心被夹断等等…

中国决定以“六大政策”推动新一代人工智能发展

来源:智造智库以新一代人工智能为代表的新一轮科技革命和产业变革已经呈现出强大的影响力和生命力,人工智能技术对生产、流通、消费等形成高度渗透、跨界融合,新业态、新模式不断涌现,给以往的产业生态、社会分工、行业和企业边界…

第三次站立会议

项目进展:项目主体开始实施,我们在前期分工准备的同时开始讨论连连看的具体式样,开始上网参考其他项目的式样,搜集图片素材,为具有我们特色的连连看项目做准备。 存在问题:搜集素材时组员对项目的风格式样见…

ffmpy3与ffmpeg的简单使用

安装 python ffmpy3与ffmpeg的安装 https://blog.csdn.net/qq_40962368/article/details/90748852 ffmpy3的介绍: https://ffmpy3.readthedocs.io/en/latest/ ffmpy3是一个用于FFmpeg的Python包装器,最初是从ffmpy项目派生出来的。它根据提供的参数及…

5G将改变技术格局的8个原因(上)

来源:CESAsia5G是引领第四次工业革命的通用技术。为了说明5G如何推动技术创新的飞跃,威讯(Verizon)首席执行官卫翰思(Hans Vestberg)在2019年国际消费电子产品展(CES 2019)主题演讲中罗列了5G所带来的八项有可能改变世界的能力。通用能力1和2&#xff1a…

matlab频谱分析_罗德与施瓦茨两款新的信号和频谱分析仪 具有多种频率型号

射频元器件、发射机和模组的制造商正面临着复杂的宽带射频信号测量任务和严苛的上市时间要求。特别是随着5G NR技术的进步,工程师在研发和生产中需要使用支持5G带宽和RF需求的测试解决方案分析无线通信信号。罗德与施瓦茨的新型中档信号和频谱分析仪R&SFSV3000和…

ArcEngine一些代码实现(转载)

转自:http://xitong.iteye.com/blog/1715759 ArcEngine 一些实现代码 ●● 目录: A1 …………实现:鼠标滑过显示要素 tip A2 …………实现:通过鼠标选择要素并高亮显示(ISelectionEnvironment) A3 ……………