最近数竞学到了三重积分,对于解决积分问题来说,绘制一个立体图形还是很有必要的,所以就尝试寻找一个能够绘制三元函数的方法.
在网上查询也都是在用Mupad绘制三元隐函数,但是在Matlab R2020里这个独立的代数系统被删除了,看官方文档才知道功能是被并入到了实时脚本里,于是就照着Matlab计算机代数工具箱的文档开始学习.这里贴一个链接:
Symbolic Math Toolboxwww.mathworks.com这里比较详尽地介绍一下数学符号工具箱:
开始:
新建数字、变量和表达式
新建Symbolic Number
sym(1/3)
ans=1/3
1/3
ans=0.333
符号数字与一般数字不同的是,一般数字表示的是逼近这个数一定位数的浮点数,而使用sym()创建的数字表示的是这个数字本身.
sin(sym(pi))
ans=0
sin(pi)
ans=1.2246e-16
至于自然对数的符号表示...暂未找到,不过一般表示为exp()
新建符号变量
有两个函数sym()和syms,而后者主要在实时脚本中使用.syms为symbol syntax的缩写(不是多个变量的意思.虽然可以同时定义多个变量.
syms x
sym('y')
y=sym('y')
第一个命令是在matlab工作空间定义变量x并将值x赋给变量x.
第二个命令是将值y赋给临时变量ans.
第一,三个命令等价.
syms也可以同时定义多个函数,中间使用空格隔开.
syms x y z
但是如果创建变量的数组,sym更加合适.
A = sym('a',[1 20])
whos
A =
[ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,...
a11, a12, a13, a14, a15, a16, a17, a18, a19, a20]
Name Size Bytes Class Attributes
A 1x20 8 sym
通过sym与syms的组合,就可以在工作区创建出相应变量名的变量.
clear all
syms(sym('a', [1 10]))
whos
Name Size Bytes Class Attributes
a1 1x1 8 sym
a10 1x1 8 sym
a2 1x1 8 sym
a3 1x1 8 sym
a4 1x1 8 sym
a5 1x1 8 sym
a6 1x1 8 sym
a7 1x1 8 sym
a8 1x1 8 sym
a9 1x1 8 sym
总结:
sym可以用来创建
- MATLAB函数中的符号变量
- 许多编号的符号变量
- 符号变量,其值与其在MATLAB工作区中的名称不同
- 符号数字,例如sym(5)
- 从先前使用的具有相同名称的符号变量继承假设的符号变量
syms可以用来创建一个/多个值与变量名相同的符号变量.
新建符号表达式
用符号变量表达黄金比率
![2e1e8b017eb60d92809389b3f9ccbfd1.png](https://i-blog.csdnimg.cn/blog_migrate/b9709a3e5787484307a719d03b285996.png)
phi = (1 + sqrt(sym(5)))/2;
![dd85c64ea84c297db27058125b296afc.png](https://i-blog.csdnimg.cn/blog_migrate/5635911f5c3571b6c34ca835081ce2fd.png)
之后就可以将运算作用于式子上:
f = phi^2 - phi - 1
![6d8a070f32d8dcd37c15777633fafff3.png](https://i-blog.csdnimg.cn/blog_migrate/4b115aa442236841da076ad33b028d2a.png)
f
=ax
^2+bx
+c
syms a b c x
f = a*x^2 + b*x +c
![918b268e66983fceb95735e01b5be2ef.png](https://i-blog.csdnimg.cn/blog_migrate/140d657c7a16bf79e923a6c92c9e1f1e.png)
变量复用
就是重新定义一下,略~
新建符号方程
符号方程可以用来运算,求微积分以及