MATLAB - 符号运算(持续更新)
发布日期:2021-07-01 04:00:04 浏览次数:3 分类:技术文章

本文共 2023 字,大约阅读时间需要 6 分钟。

文章目录

1. 符号变量的定义

syms x t y(t)

创建实数变量,即避免符号运算时出现复数形式

syms x t real

2. 求导

syms x t;% z = f(x,t)ddt = diff(f,t) % 对t偏导ddx = diff(f,x) % 对x偏导

matlab求导命令diff调用格式:

  • diff(函数):求函数的一阶导数;
  • ==diff(函数,n) ==:求函数的n阶导数(n是具体整数);
  • diff(函数,变量名):求函数对对应变量的偏导数;
  • diff(函数, 变量名,n):求函数对对应变量的n阶偏导数;

3. 化简

  • pretty(f):将符号表达式化简成与高等数学课本上显示符号表达式形式类似
  • collect(f):合并符号表达式的同类项
  • horner(f):将一般的符号表达式转换成嵌套形式的符号表达式
  • factor(f):对符号表达式进行因式分解 ,如果无法在有理数的范围内作分解, 那么返回的结果还是输入值
  • expand(f):对符号表达式进行展开
  • simplify(f):对符号表达式进行化简,它利用各种类型的代数恒等式,包括求和、
    积分、三角函数、指数函数以及 Bessel 函数等来化简符号表达式
  • simple(f):威力强大, 对符号表达式尝试多种不同的算法进行化简,以显示长度最短的符号
    表达式简化形式
  • [r,how]=simple(f):返回的 r为符号表达式进行化简后的形式, how为所采用的简化方法
  • subexpr(f):通过计算机自动寻找, 将表达式中多次出现的因式用简短的符号表示, 返回的结果中包含替换之后的表达式, 以及被替换的因式

4. 线性方程组化成矩阵形式

equationsToMatrix函数

[A,b] = equationsToMatrix(eqns)[A,b] = equationsToMatrix(eqns,vars)A = equationsToMatrix(___)

例程:

syms x y z a b ceqns=[a*x+b*y==c,c*x-z==c*c];vars=[x,y,z][A,b]=equationsToMatrix(eqns,vars) %即可求出系数矩阵A和常数项矩阵b

5. 返回C语言代码

  • ccode(s):返回用于计算符号表达式s的C语句段落

6. 替换符号表达式中的指定新变量

以下转自http://blog.csdn.net/guyuealian/article/details/53997490

  • subs():表示将符号表达式中的某些符号变量替换为指定的新的变量
  1. R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。
  2. R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。
  3. R = subs(S, old, new) 利用new的值代替符号表达式中old的值。old为符号变量或是字符串变量名。new是一个符号货数值变量或表达式。也就是说R = subs(S,old,new)在old=new的条件下重新计算了表达式S。这种替换第一次作为Matlab表达式被尝试,如果所有在new中的数值是双精度的,计算是以双精度算术运算进行的。讲new值转化为符号可以验证符号货变量的运算精度。
  4. 如果old和new是大小和类型相同的向量或是元包数组,每一个old的元素都将被相应新的元素替换。
  5. 如果S和old是标量,new是数组或元包数组,则扩展标量去计算一个数组结果。
  6. 如果new是个数值矩阵元包数组,替换讲运行为/智能元素/(i.e., subs(x*y,{x,y},{A,B}) returns A.*B when A and B are numeric)。
  7. 如果subs(s,old,new) 没有改变S,则将会试行subs(s,new,old)。这将为前面的版本提供向前的兼容性,消除记忆参数顺序。subs(s,old,new,0)不改变参数,如果S没有改变。

举个栗子:

  • 将变量x替换为数值1: subs(S,x,1)
  • 将变量x替换为变量z: subs(S,x,z)
  • 同时将变量x和y分别替换为1和z:subs(S,{x,y},{1,z})
  • 将单变量替换为数组:subs(S,x,[1 2;3 4])

7. 符号矩阵的转置

对于符号矩阵的转置,要注意使用【.'

  • 当矩阵为实矩阵时,两者效果相同;
  • 当矩阵为复矩阵时,两者有差别;
syms a b c d e fx = [a b c;d e f]x'   % 共轭转置x.'	 % 一般转置

运行结果如下:

在这里插入图片描述

8. 符号矩阵的零空间

  • Z = null(A): 返回 A 的零空间的标准正交基。使用null函数计算矩阵的零空间的标准正交基和有理基向量。矩阵的零空间包含满足Ax=0的向量x
    在这里插入图片描述)

转载地址:https://miracle.blog.csdn.net/article/details/103572109 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:机器人动力学 - 机器人学中的惯性矩阵坐标转换及在SolidWorks中的测量
下一篇:关于机械臂仿真的几款软件简介

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月06日 21时49分29秒