编辑: 鱼饵虫 | 2015-06-25 |
, '
real'
);
(3) MatLab 提倡使用 syms 命令,因为书写更方便、清楚.
83 第5章MATLAB 符号运算 【例5-1】以下是 sym 命令与 syms 命令的区别. (1) sym 命令. >
>
y=sym a >
>
y=sym b >
>
y=a*b >
>
f=y^3-y^2-y f = a^3*b^3 - a^2*b^2 - a*b (2) syms 命令. >
>
syms a b >
>
y=a*b >
>
f=y^3-y^2-y f = a^3*b^3 - a^2*b^2 - a*b 3.建立符号表达式 含有符号对象的表达式称为符号表达式.建立符号表达式有以下
2 种方法. 1) 用sym 函数建立符号表达式 【例5-2】用sym 建立符号表达式
2 y ax bx = + 和3ex y x + = - . (1)
2 y ax bx = + . 第一步:在matlab 命令窗口中输入如下命令. >
>
y=sym('
a*x^2+b*x'
) %括号的内容必须是字符串 第二步:按 enter 键,得到的结果如下. y = a*x^2 + b*x (2)
3 ex y x + = - . 第一步:在matlab 命令窗口中输入如下命令. >
>
y=sym('
exp(x+3)-sqrt(x)'
) 第二步:按 enter 键,得到的结果如下. y = exp(x + 3) - x^(1/2) 2) 使用已经定义的符号变量组成符号表达式 【例5-3】建立表达式 y=sin(xy). 方法一: >
>
syms x y
84 MATLAB 基础及实验教程 >
>
y=sym(sin(x*y)) y = sin(x*y) 方法二: >
>
syms x y >
>
y=sin(x*y) y = sin(x*y) 4.符号矩阵 符号矩阵也是一种符号表达式.符号表达式运算都可以在矩阵意义下进行. 符号矩阵的创建方法: >
>
syms a b c d >
>
A=[a b;
c d] >
>
B=[a c;
b d];
>
>
A*B ans = [ a^2+b^2, a*c+b*d] [ a*c+b*d, c^2+d^2] MATLAB 还有一些专用于符号矩阵的函数, 这些函数作用于单个的数据无意义. 例如 transpose(A):返回 A 矩阵的转置矩阵 det (A):返回 A 矩阵的行列式值 其实,许多应用于数值矩阵的函数,如diag、triu、tril、inv、rank、eig 等,也可直接 应用于符号矩阵. 【例5-4】求矩阵
11 1
0 9
3 5
4 2
8 ? ? ? ? ? ? ? ? ? ? - = - A 转置矩阵和行列式值. 解: 第一步:在matlab 命令窗口中输入如下命令. >
>
A=[11 -1 0;
9
3 5;
-4
2 8] >
>
t=transpose(A) >
>
d=det(A) 第二步:按 enter 键,得到的结果如下. t=
11 9 -4 -1
3 2
0 5
8 85 第5章MATLAB 符号运算 d = 246.0000 5.1.2 findsym 函数和 subs 函数 1.findsym 函数 MATLAB 中的符号可以表示符号变量和符号常量.findsym 可以帮助用户查找一个符 号表达式中的的符号变量(自变量).该函数的调用格式为: findsym(s,n) findsym 函数通常由系统自动调用,在进行符号运算时,系统调用该函数确定表达式 中的符号变量,执行相应的操作.函数返回符号表达式 s 中的 n 个符号变量,若没有指定 n,则返回 s 中的全部符号变量.优先选择靠近 x 的小写字母和 x 后面的字母. 【例5-5】求符号变量 z y x f y x z = + + . >
>
syms x y z >
>
f=z^x+x^y+y^z >
>
findsym(f,1) ans = X >
>
findsym(f,2) ans = x,y >
>
findsym(f) ans = x,y,z 2.subs 函数 subs 是单词 substitution 的缩写,意思就是 替代 .函数 subs 可以用指定符号替换表 达式中的某一个特定符号.该函数的调用格式为: R=subs(S) 对于 S 中出现的全部符号变量,如果在调用函数或工作区间中存在相应值,则将值代 入,如果没有相应值,则对应的变量保持不变;
R=subs(S,new)
86 MATLAB 基础及实验教程 用新的符号变量替换 S 中的默认变量,即有 findsym 函数返回的变量;