声明:本文章中数据来自清风老师数学建模课程

文章目录

  • MATLAB符号函数的求导
    • 1、符号函数求导
      • 1.1 一元符号函数求导
      • 1.2 多元函数的导数
    • 2、差分
      • 2.1 向量的差分
      • 2.2 矩阵的差分

MATLAB符号函数的求导

MATLAB中可以使用命令diff对符号函数进行求导,并且当diff作用到向量或者是矩阵时还可以求差分

1、符号函数求导

1.1 一元符号函数求导

先定义一元符号函数

syms x
y = x^4-5*x^2+6

进行求导,当diff作用到符号函数上时可以对符号函数进行求导

  • 第一个参数传入符号函数
  • 第二个参数传入要求几阶导,第二个参数空着默认求1一阶导
diff(y,1) %求一阶导数  diff(y)默认求一阶导
% 4*x^3 - 10*x
diff(y,2) %求二阶导数
% 12*x^2 - 10

求导后分析结果遇到的问题
下面我们用diff对cos(x)*tan(x)进行求导

syms x
y = cos(x)*tan(x)
dy = diff(y,10)  %求十阶导数
240*sin(x)*(tan(x)^2 + 1)^2 - cos(x)*tan(x) - 4032*sin(x)*(tan(x)^2 + 1)^3 + 32640*sin(x)*(tan(x)^2 + 1)^4 - 79360*sin(x)*(tan(x)^2 + 1)^5 - 10*sin(x)*(tan(x)^2 + 1) - 3360*cos(x)*tan(x)*(tan(x)^2 + 1)^2 + 57120*cos(x)*tan(x)*(tan(x)^2 + 1)^3 - 1680*cos(x)*tan(x)^3*(tan(x)^2 + 1) - 357120*cos(x)*tan(x)*(tan(x)^2 + 1)^4 + 353792*cos(x)*tan(x)*(tan(x)^2 + 1)^5 + 6720*cos(x)*tan(x)^5*(tan(x)^2 + 1) - 5760*cos(x)*tan(x)^7*(tan(x)^2 + 1) + 512*cos(x)*tan(x)^9*(tan(x)^2 + 1) + 480*sin(x)*tan(x)^2*(tan(x)^2 + 1) - 4032*sin(x)*tan(x)^4*(tan(x)^2 + 1) + 7680*sin(x)*tan(x)^6*(tan(x)^2 + 1) - 2560*sin(x)*tan(x)^8*(tan(x)^2 + 1) + 87360*cos(x)*tan(x)^3*(tan(x)^2 + 1)^2 - 1105920*cos(x)*tan(x)^3*(tan(x)^2 + 1)^3 + 1841152*cos(x)*tan(x)^3*(tan(x)^2 + 1)^4 - 345600*cos(x)*tan(x)^5*(tan(x)^2 + 1)^2 + 1304832*cos(x)*tan(x)^5*(tan(x)^2 + 1)^3 + 128512*cos(x)*tan(x)^7*(tan(x)^2 + 1)^2 - 22176*sin(x)*tan(x)^2*(tan(x)^2 + 1)^2 + 345600*sin(x)*tan(x)^2*(tan(x)^2 + 1)^3 - 1372160*sin(x)*tan(x)^2*(tan(x)^2 + 1)^4 + 218880*sin(x)*tan(x)^4*(tan(x)^2 + 1)^2 - 1858560*sin(x)*tan(x)^4*(tan(x)^2 + 1)^3 - 316160*sin(x)*tan(x)^6*(tan(x)^2 + 1)^2 + 90*cos(x)*tan(x)*(tan(x)^2 + 1)

我们看到对其求10阶导后的结果是无比的长,那么我们看看能不能用mupad工具箱来让结果显示的更加自然呢?
然而并不理想,见下图:

mupad工具箱仅能对待整理的式子进行整理,显示出“人能容易看懂的”,但是无奈我们的结果太麻烦了
这时候我们可以尝试一下simplify来进行化简整理

如下图所示,结果很明显,是我们想要的形式

那么为什么我们使用diff对cos(x)*tan(x)求导的结果这么复杂呢,其实它的求导算法就是莱布尼兹公式的展开。其实我们知道cos(x)*tan(x)等于sin(x),求高次导数一定是一个简单的式子

1.2 多元函数的导数

参数:

  • 第一个参数是待求导符号函数
  • 第二个参数是要对那个自变量求偏导
  • 第三个参数是要求几阶偏导数

当连续对自变量求偏导时,放在前面的自变量先求偏导,后面的自变量后求偏导

syms x1 x2 x3
y1 = x1^5*x2+x2*x3-x1^2*x3
py1 = diff(y1,x1,1) % 对x1求一阶偏导
% 5*x2*x1^4 - 2*x3*x1
py2 = diff(y1,x1,2) % 对x1求二阶偏导
% 20*x2*x1^3 - 2*x3
py3 = diff(y1,x1,x2) % 先对x1求偏导,再对x2求偏导
% 5*x1^4
py4 = diff(y1,x2,x1) % 先对x2求偏导,再对x1求偏导
% 5*x1^4

2、差分

注意,如果diff函数作用的对象不是符号函数,而是矩阵,那么对应的功能是求差分。

2.1 向量的差分

默认求1阶差分

A=[4 5 6 3 2 1];
diff(A)  % 求向量A的一阶差分     1     1    -3    -1    -1
diff(A,2)  % 在一阶差分的基础上再差分一次     0    -4     2     0

2.2 矩阵的差分

默认是列的方向上求差分(下一行减上一行),且默认求一阶差分。
第三个参数指定为2时,在行的方向上求差分(后一列减前一列)
第二个参数用于指定求几阶差分,默认一阶差分

A=[4 5 6; 7 4 2;5 6 2]
A1=diff(A)  % 下一行减去上一行求一阶差分
%      3    -1    -4
%     -2     2     0
A2=diff(A,2) % 下一行减去上一行求二阶差分(在一阶差分的基础上再差分一次)
%     -5     3     4
A3=diff(A,2,1) % 最后面的1表示在行上进行差分(在列的方向上进行差分)
%     -5     3     4
A4=diff(A,1,2)  % 后一列减去前一列求一阶差分, 最后面的2表示在列上进行差分(在行的方向上进行差分)
%      1     1
%     -3    -2
%      1    -4
A4=diff(A,2,2) % 后一列减去前一列求二阶差分
%      0
%      1
%     -5

MATLAB符号函数的求导相关推荐

  1. MATLAB新手简明使用教程(七)——使用matlab建立多项式以及求导,商求导乘积求导等——新手来看,保证看懂。

    前期回顾 上一期中,我们学了下面的知识: 定积分的基本概念和一些简单的几何意义. 使用 int 函数计算不定积分. 使用 int 函数计算定积分. 本期内容 本期我打算给大家介绍一下使用matlab对 ...

  2. Mathematica对函数表达式求导并设置为新的自定义函数

    自定义函数 自定义函数需要注意亮点 1.最好使用 := 而非 = 2.定义时等式左端函数变量有下划线,被称为"空白" Wolfram 系统变换规则最强有力的方面或许是它们不仅能用于 ...

  3. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...

    如何打开simulink: 启动simulink: 先打开MATLAB软件界面 第一步打开simulink 第二步在command windows输入 simulink然后enter,等待 有很多模块 ...

  4. sigmoid函数的求导过程

    sigmoid函数的求导过程涉及"链式求导"和"自然指数"的求导.

  5. Matlab计算微分方程曲线求导及过曲线上点的切线方程

    Matlab计算微分方程曲线求导及过曲线上点的切线方程 求解f(x)=x^2一元二次方程上某点的切线方程并绘制出方程的切线图.点(4,f(4))是曲线方程f(x)上的一个点,求出该点的切线并绘制出来. ...

  6. sigmoid函数、tanh函数、softmax函数及求导

    sigmoid函数和tanh函数都是激活函数,接收一个输入,产生一个输出.这里的求导是对激活函数求导.而softmax函数是一个多输入多输出的激活函数,这里提到的求导是对经过softmax函数后进行交 ...

  7. 高等数学——复杂函数的求导方法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 上一篇文章我们复习了函数求导的定义和一些常见函数的导数,今天这篇文章我们回顾一下复杂函数的求导方法.先强调一下,今天的文章很重要,想要看懂机 ...

  8. 变限积分函数的求导(终极版神器)

    变限积分函数的求导(终极版神器) 在一定程度上,我们可以将积分和求导当成互逆运算. 可是如果为变限积分也即在积分上下限中也存在变量的情况下,就不是简单地将积分号去掉这么简单了,该如何运算呢. 一般教辅 ...

  9. matlab拟合曲线后求导,高手留步:MATLAB五阶拟合函数,求导后离散化,输出结果是星号...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序如下: T=1978:1:2012; t1=1978:1:2012; 五阶拟合函数是f5=0.0049664*T^5-49.4903*T^4+1972 ...

  10. matlab的离散求导,高手留步:MATLAB五阶拟合函数,求导后离散化,输出结果是星号...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序如下: T=1978:1:2012; t1=1978:1:2012; 五阶拟合函数是f5=0.0049664*T^5-49.4903*T^4+1972 ...

最新文章

  1. 关于可扩展的web架构设计的探索-框架结构的描述文件
  2. iOS开发系列--网络开发(转)
  3. P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结
  4. JS 四则运算精度丢失解决方案
  5. 如何实现Java类隔离加载?
  6. 让OpenCV2.4.9支持虚拟环境python3.5
  7. VC6.0下opencv1.0的环境配置
  8. 为什么女生会有体香?
  9. python自己写包_封装属于自己的Python包
  10. php 判断昨天_PHP 判断时间在今天、昨天、前天、几天前几点
  11. ios 监测网页按钮_关于iOS加载WebView监控网页上的点击事件
  12. 计算机科学与技术专业叙述,计算机科学与技术专业描述怎么写
  13. 好用的在线PS编辑器
  14. supervise进程管理利器
  15. python利用matplotlib库绘制三维图学习
  16. 解密android日志xlog,安卓开发技巧2:自定义日志工具类XLog的实现
  17. 如何在网页中屏蔽右键
  18. iPhone 15 高端版本万元起步;华为授权 OPPO 使用其 5G 技术;DeepMind 推出 AI 编剧|极客头条
  19. JBPM工作流(二)——数据库表说明
  20. android自动连接到指定wifi

热门文章

  1. Excel函数公式大全—MATCH函数
  2. EasyPoi 模板导出Excel (带图片) 以及一些踩坑记录
  3. php网页错误404,php出现404错误页面的解决方法
  4. BigGAN进化出最强形态BigBiGAN:重回表示学习,GAN之父点赞
  5. 【MATLAB】图像分割
  6. 纯js浏览器h5调用摄像头扫描识别解析 条形码+二维码
  7. 菜谱网 java 源码_基于JSP的美食网站食谱网站、javaweb源码
  8. MQTT测试工具推荐
  9. python qq群_用Python玩转QQ群论坛
  10. 要闻君说:小米手机部组织架构突现大调整;河南联通重启VDC扩容工程招标;英特尔已收购Ineda Systems,剑指独显;...