欢迎关注工科男的Maltab学习日志,采用Mardown文本编辑器编写文章,全新排版升级,内容、代码更简洁,同时开通了视频号,工科男的日常gōng kē nán de rì cháng欢迎大家关注。 ——工科男

MATLAB符号计算

  • 1 符号计算基础

    • 1.1符号运算

    • 1.2 符号对象

    • 1.3 符号表达式中变量的确定

  • 2 符号导数及其应用

    • 2.1函数的极限

    • 2.2 符号函数求导及其应用

  • 3 符号积分

  • 4 级数符号求和

    • 4.1 级数的符号求和

    • 4.2 函数的泰勒级数

  • 5 代数方程的符号求解

  • 6 常微分方程(组)符号求解

  • 往期精彩阅读

1 符号计算基础

1.1符号运算

  • 与数值运算的区别

    • 数值运算中必须先对变量赋值,然后才能参与运算。
    • 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。
  • 特点
    • 运算对象可以是没赋值的符号变量
    • 可以获得任意精度的解

1.2 符号对象

  • 建立符号变量和符号常数

    • sym函数
      sym函数用来建立单个符号量,例如,a=sym(‘a’)建立符号变量a,此后用户可在表达式中使用变量a进行各种运算。
    • syms函数
      syms函数调用格式为:syms  var1 var2 … varn 变量间用空格而不要用逗号分隔

例1 考察符号变量和数值变量的差别

a=sym('a');b=sym('b');c=sym('c');d=sym('d');   %定义4个符号变量 w=10; x=5; y=-8; z=11;                      %定义4个数值变量 A=[a, b; c, d]                              %建立符号矩阵A B=[w, x; y, z]                             %建立数值矩阵B det(A)                                   %计算符号矩阵A的行列式 det(B)                                   %计算数值矩阵B的行列式a=sym('a');b=sym('b');c=sym('c');d=sym('d');  %定义4个符号变量w=10; x=5; y=-8; z=11;                     %定义4个数值变量A=[a, b; c, d]                            %建立符号矩阵AB=[w, x; y, z]                           %建立数值矩阵Bdet(A)                                  %计算符号矩阵A的行列式det(B)                                  %计算数值矩阵B的行列式

例2 比较符号常数与数值在代数运算时的差别

pi1=sym('pi');k1=sym('8');k2=sym('2');k3=sym('3');    % 定义符号变量pi2=pi; r1=8; r2=2; r3=3;                         % 定义数值变量sin(pi1/3)                                    % 计算符号表达式值  sin(pi2/3)                                     % 计算数值表达式值sqrt(k1)                                        % 计算符号表达式值sqrt(r1)                                       % 计算数值表达式值sqrt(k3+sqrt(k2))                         % 计算符号表达式值sqrt(r3+sqrt(r2))                         % 计算数值表达式值
  • 建立符号表达式

    • sym函数
    • syms函数
    • 利用单引号建立符号表达式

例3 利用3种方法建立符号表达式

U=sym('3*x^2+5*y+2*x*y+6') %定义符号表达式Usyms x y;                                       %建立符号变量x、yV=3*x^2+5*y+2*x*y+6             %定义符号表达式V2*U-V+6                                       %求符号表达式的值W='3*x^2+5*y+2*x*y+6'           %定义符号表达式W

例4 建立x, y的一般二元函数

f = sym('f(x,y)');   f = ‘f(x,y)’;
  • 基本的符号运算

    • 基本四则运算

例5 符号表达式的四则运算示例

syms x y z;    f=2*x+x^2*x-5*x+x^3   %符号表达式的结果为最简形式f=2*x/(5*x)                      %符号表达式的结果为最简形式f=(x+y)*(x-y)                   %符号表达式的结果不是x^2-y^2,而是(x+y)*(x-y)
  • 基本的符号运算

    • 因式分解与展开
  1. factor(S)  对S分解因式,S是符号表达式或符号矩阵;
  1. expand(S)  对S进行展开,S是符号表达式或符号矩阵;
  1. collect(S)  对S合并同类项,S是符号表达式或符号矩阵;
  1. collect(S, v) 对S按变量v合并同类项,S是符号表达式或符号矩阵。

例6  对符号矩阵A的每个元素分解因式

syms a b x y;A=[2*a^2*b^3*x^2-4*a*b^4*x^3+10*a*b^6*x^4,3*x*y-5*x^2;4,a^3-b^3];factor(A)              %对A的每个元素分解因式

例7  计算表达式S的值

syms x y;s=(-7*x^2-8*y^2)*(-x^2+3*y^2);expand(s)      %对s展开collect(s,x)     %对s按变量x合并同类项(无同类项)factor(ans)     % 对ans分解因式
  • 基本的符号运算

    simplify(S)  应用函数规则对S进行化简

    • 表达式简化

例8 表达式化简举例

syms x y;s=(x^2+y^2)^2+(x^2-y^2)^2;simplify(s)simple(s)      %MATLAB自动调用多种函数对s进行化简,并显示每步结果
  • 符号运算

transpose(S)       返回S矩阵的转置矩阵

determ(S)           返回S矩阵的行列式值

colspace(S)        返回S矩阵列空间的基

[Q, D]=eigensys(S)     Q返回S矩阵的特征向量,D返回S矩阵的特征值

1.3 符号表达式中变量的确定

findsym可以帮助用户查找一个符号表达式中的符号变量。该函数的调用格式为:

findsym(S,n)

函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量 在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符'x'最近原则确定缺省变量。

2 符号导数及其应用

2.1函数的极限

limit函数的调用格式为:

limit(f,x,a)

limit函数的另一种功能是求单边极限,其调用格式为:

limit(f,x,a,'right') 或 limit(f,x,a,'left')

例9

syms a m x; f=(x^(1/m)-a^(1/m))/(x-a);limit(f, x, a)                   %求极限(1)f=(sin(a + x)-sin(a - x))/x;limit(f)                         %求极限(2)limit(f, inf)                   %求f函数在x→∞(包括+∞和-∞)处的极限limit(f, x, inf, 'left')      %求极限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(x*x-a*a);limit(f, x, a, 'right')                 %求极限(4)

2.2 符号函数求导及其应用

求导函数为:

diff(f, x, n)

diff函数求函数f对变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1;

例10 求函数的导数

syms a b t x y z;    f=sqrt(1+exp(x));diff(f)                  %求(1)。未指定求导变量和阶数,按缺省规则处理f=x*cos(x);diff(f,x,2)               %求(2)。求f对x的二阶导数diff(f,x,3)               %求(2)。求f对x的三阶导数f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)           %求(3)。按参数方程求导公式求y对x的导数f=x*exp(y)/y^2;diff(f,x)                 %求(4)。z对x的偏导数diff(f,y)                 %求(4)。z对y的偏导数f=x^2+y^2+z^2-a^2;zx=-diff(f,x)/diff(f,z)      %求(5)。按隐函数求导公式求z对x的偏导数zy=-diff(f,y)/diff(f,z)      %求(5)。按隐函数求导公式求z对y的偏导数

例11 在曲线 上哪一点的切线与直线 平行。

x=sym('x');   y=x^3+3*x-2;         %定义曲线函数f=diff(y);                %对曲线求导数g=f-4;solve(g)                 %求方程f-4=0的根,即求曲线何处的导数为4

3 符号积分

求不定积分和定积分的函数是int,其调用格式为

int(f)       求f对默认自变量的不定积分;

int(f, x)           求f对自变量t的不定积分;

int(f, a, b)       求f对默认自变量的定积分,积分区间为[a,b];

int(f, x, a, b)   求f对自变量x的定积分,积分区间为[a,b]

参数x可以缺省,缺省原则与diff函数相同

例12 求不定积分

x=sym('x');f=(3-x^2)^3;int(f)                       %求不定积分(1)f=sqrt(x^3+x^4);int(f)                        %求不定积分(2)g=simple(ans)         %调用simple函数对结果化简

例13 求定积分

x=sym(‘x’);t=sym(‘t’); nt(abs(1-x),1,2) %求定积分f=1/(1+x^2);  int(f, -inf, inf)    %求定积分int(4*t*x,x,2,sin(t))                %求定积分f=x^3/(x-1)^100;I=int(f, 2, 3)          %用符号积分的方法求定积分double(I)               %将上述符号结果转换为数值

例14 轴的长度为10米,若该轴的线性密度计算公式是 千克/米(其中x为距轴的端点距离),求轴的质量。

%(1)符号积分syms x;  f=6+0.3*x;   m=int(f,0,10)
%(2)数值积分%先建立一个函数文件fx.m:function fx=fx(x)fx=6+0.3*x;%输入命令:m=quad('fx',0,10,1e-6)

4 级数符号求和

4.1 级数的符号求和

级数符号求和函数symsum,调用格式为:

symsum(a,n,n0,nn)

例15 求级数之和

n=sym('n');s1=symsum(1/n^2,n,1,inf)        s2=symsum((-1)^(n+1)/n,1,inf)%未指定求和变量,缺省为ns3=symsum(n*x^n,n,1,inf)   %此处的求和变量n不能省略。s4=symsum(n^2,1,100)              %计算有限级数的和

4.2 函数的泰勒级数

函数taylor调用格式为:

taylor(f, v, n, a)

例16 求函数在指定点的泰勒展开式。

x=sym('x');f1=(1+x+x^2)/(1-x+x^2);f2=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);taylor(f1,x,5)                %展开到x的4次幂时应选择n=5taylor(f2,6)        

5 代数方程的符号求解

线性代数方程组求解函数linsolve,其调用格式:

linsolve(A,b)

一般代数方程(组)求解函数是solve,其调用格式:

solve(f)                  —— 求一个方程的解

solve(f1,f2, …fn)    —— 求n个方程的解

solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN')

例17 求线性方程组AX=b的解

%解方程组(1)的命令如下:A=[34, 8, 4; 3, 34, 3; 3, 6, 8]; b=[4; 6; 2];X=linsolve(A,b)   
%调用linsolve函数求(1)的解A\b          %用另一种方法求(1)的解
%解方程组(2)的命令如下:syms a11 a12 a13 a21 syms a22 a23 a31 a32 syms a33 b1 b2 b3;A=[a11,a12,a13;a21,a22,a23;a31,a32,a33]; b=[b1;b2;b3];X=linsolve(A,b)                %调用linsolve函数求(2)的解
XX=A\b                              %用左除运算求(2)的解

6 常微分方程(组)符号求解

常微分方程符号求解函数dsolve,其调用格式为:

dsolve('eqn1','condition','var')

求解微分方程eqn1在初值条件condition下的特解,若没有给出初值条件,求方程的通解

dsolve('eqn1','eqn2',…,'eqnN','condition1',…,'conditionN','var1',…,'varN')

求解微分方程组eqn1、…、eqnN在初值条件conditoion1、…、conditionN下的解,若没有给出初值条件,求方程组的通解

或 y的一阶导数——Dy

或 y的二阶导数——D2y

或 y的n阶导数——Dny

例18 求下列方程的解

y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')ezplot(y) % 方程解y(t)的时间曲线图

方程解的时间曲线

往期精彩阅读

点击即可阅读原文

谁说工科男不解风情MATLAB建模实例——微分方程MATLAB优化算法实例——差分方程MATLAB优化算法实例——神经网络MATLAB优化算法实例——蚁群算法MATLAB优化算法实例——模拟退火算法MATLAB优化算法实例——遗传算法MATLAB自动发送邮件基于MATLAB的视觉加密技术自动执行文本中的 MATLAB 表达式——关于eval函数的使用技巧条形图学习札记——如何排序并指定坐标标签MATLAB图论实例——最短路径A、C频率计权网络MATLAB函数库大全(收藏版)科技论文写作WORD必备技巧——排版数学建模——无约束优化问题基于MATLAB的核放射素查询系统基于MATLAB云图背景图片的添加基于MATLAB文本转语音包的实现MATLAB调用摄像头实例基于MATLAB制作简易画板基于MATLAB的心电图信号分析与处理Lamb频散曲线快速绘制软件软著——高阶椭圆齿轮副参数设计与分析系统日常札记——关于极坐标绘图的若干小问题基于MATLAB定时器timer函数制作数字万年历基于MATLAB视频处理——抖音小视频去除水印抖音上火起来的来的撩妹神器基于compass函数的时钟制作如何验证身份证号码是否合法MATLAB版本的扫雷小游戏基于hough变换的直线检测MATLAB 如何生成 APP ———以运动模糊图像复原为例高效办公路上MATLAB助你一臂之力微积分问题的MATLAB求解(二)——龙贝格积分的算法实现微积分问题的MATLAB求解(一)技巧篇——如何抓取网页中的图片数据插值与拟合MATLAB版本的俄罗斯方块签凉凉——可变速小风扇跟着工科男学英语单词Matlab GUI 简介你的时光倒映机谁说工科男不解风情您有一份软件著作权请查收高逼格坐标轴函数plot3与mesh的区别

在学习中得到乐趣,在乐趣中收获学习zài xué xí zhōng dé dào lè qù ,zài lè qù zhōng shōu huò xué xí欢迎关注和分享该公众号。如果您有什么建议可以公众号直接回复即可。期待您的加入,也希望您分享给您身边有需要的人,建议直接将该公众号设为星标记公众号,以免错失精内容,该公众号同时开通了视频号工科男的日常gōng kē nán de rì cháng,欢迎扫描下方二维码关注。

QQ技术交流群:272558566

微信视频号

微信公众号

matlab怎么定义矩阵变量_MATLAB符号计算(收藏版)相关推荐

  1. matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例

    1.在命令窗口单击↑键,可以出现历史命令行(几天之内的都有),可以方便的回调变量 2.如果对公式遗忘或不清楚,可以点击命令行左侧的fx进行公式选择. 3.plot绘图可以使用命令,也可以选中所需变量在 ...

  2. matlab怎么定义矩阵变量_matlab文档(一)matlab入门

    距离上一篇文章的发布有一个多月了.现在接上,来分享一些MATLAB软件的内容,同时自己也来更加深入地学习这个软件. 01 前言 网上的学习视频很多了,我就从matlab官网的文档(2019a版)入手, ...

  3. matlab怎么定义矩阵变量_MATLAB笔记(一)

    基础语法 查阅w3cschool的MATLAB教程,学习基本语法 MATLAB 教程_w3cschool​m.w3cschool.cn tip: 如果语句后面不加分号,matlab会以交互式来执行程序 ...

  4. matlab 统计数组频数_matlab如何找出一个数在数组中出现次数

    好象直接使用就可以了,第一次出现就包含了定义 顺便把些命令弄给你看下 matlab命令 matlab commands and functions list A a abs 绝对值.模.字符的ASCI ...

  5. VC调用matlab中定义的.m文件中的函数的实例

    Matlab是一个强大的数学计算/仿真工具,其内置了很多实用的现成的函数,而且我们经常也自己定义很多m函数.但在很多情况下,我们不得不使用VC编程.那么,如何在VC中利用matlab的资源呢?在这里我 ...

  6. matlab中如何定义整形变量,MATLAB中定义变量的问题

    题目: MATLAB中定义变量的问题 比如说可以用syms定义 >> syms x11 x12 x13 x14 >> syms x21 x22 x23 x24 >> ...

  7. matlab中for循环设置二维数组,MATLAB中定义赋值一个二维数组

    MATLAB中定义赋值一个二维数组 答: 分号:; 因特网能提供的最基本服务 答:E-mail, WWW, FTP 劳动合同中,用人单位给予劳动者低于当地工资最低水平的违反了()合法原则 答:内容合法 ...

  8. matlab定义多维数组长度,matlab如何定义三维数组

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:matlab如何定义三维数组?回答:好象直接使用就可以了,第一次出现就包含了定义顺便把些命令弄给你看下matlab命令matlabn ...

  9. matlab中定义向量函数,matlab中如何定义向量

    Matlab中生成向量的三种方法 在Matlab中,如何才能生成向量,生成向量的方法又有多少种?相信这是每一个初学者都想知道的问题.这里小编将向大家详细介绍Matlab中生成向量的三种方法. 方法一: ...

  10. matlab如何定义函数类型,Matlab如何定义函数?Matlab定义函数的方法

    Matlab是一款著名的商业数学软件,它的功能十分强大,我们常常会使用它解决一些数学难题.但是刚开始使用它的时候经常会遇到一些难题,比如Matlab如何定义函数,如果你不知道的话,赶紧看看小编整理的M ...

最新文章

  1. 二线城市的我,和北京的同学比成长
  2. asp用于取代什么技术_ASP是不是已经被淘汰了?
  3. python利用近似公式计算π_Excel函数公式大全之利用SUMSQ函数快速计算多个数据的平方和...
  4. java 植入 form_pdf form表单制作以及用java程序填充表单
  5. 关于IronPython
  6. Unity3D之NGUI基础1:NGUI插件介绍
  7. 网件rax40可以刷梅林_支持WiFi6,带宽达到3000Mbps,网件RAX40路由器评测 | 钛极客...
  8. Django2.0中URL的路由机制
  9. WordPress 中文图片 上传 自动重命名
  10. 制作 Eset Nod32 离线升级包
  11. vmware安装win10并使用xshell成功连接及虚拟机中win10设置静态ip
  12. 【React】入门实例
  13. 如何从Docker容器内部获取Docker主机的IP地址
  14. 用tensorflow深度学习梵高的画并模仿
  15. 实现Windows文件复制到vm虚拟机
  16. SQL注入【二】——MYSQL注入的基本流程
  17. 车库系统服务器配置,标准停车场管理系统方案设计.doc
  18. java获取字符串hash值,Java 获取字符串Hash值
  19. 老司机必备-图种快速制作神器
  20. G120XA与S7-1200的Modubus通信实战(三)

热门文章

  1. node 压缩图片_Tinypng - 比ps更厉害的免费图片压缩神器
  2. 关于获取安卓手机MAC地址的问题
  3. 计算机软件考研北京学校,软件考研考哪些学校
  4. 宝宝出现这些突发状况!你会处理吗?
  5. 韦恩图——你学会了吗?
  6. EPA PMF正定因子分解模型程序破解
  7. 以漫画的形式描述联邦学习
  8. 中国90%的SaaS都亏钱,为何这家公司偏偏盈利千万
  9. 飞鹅WiFi打印机配置,php调用接口
  10. Kafka Spout Offset存储在Zookeeper