只可以建立一个符号变量
可以一次性建立多个符号变量
PS:符号常量计算的结果是精确的数学表达式,而数值常量是进行约分后的常数
(1)利用单引号来生成符号表达式:
y='1/sqrt(2*x)'; %符号表达式
g='cos(x^2)-sin(x)=0’ %符号方程
(2)用sym函数建立符号表达式:
Y=sym('3*x'); %符号表达式: G=sym ('[a,b;c,d]'); %矩阵表达式
(3)使用已经定义的符号变量组成符号表达式
syms x y; V=3*x^2-5*y+2*x*y+6;
符号表达是的加减乘除运算的实现方法:
(1)使用函数:
%其中f,g为符号表达式 symadd(f,g); %加法 symsub(f,g); %减法 symmul(f,g); %乘法 symdiv(f,g); %除法 sympow(f,g); %幂运算
(2)可以直接使用”+,-,*,/,^“运算符实现运算。
PS:但是MATLAB不一定会化简到最简的形式
[n,d]=numden(s); %s为符号表达是,n为分子,,d为分母
PS:无论s是什么,MATLAB会进行运算,使得s化为一个分式
factor(s); %对符号表示式分解分解因式 expands(s); %对s进行展开 collect(s); %对s合并同类项 collect(s,v);%对s按变量v合并同类项。
simplify(s); %应用函数规则对s进行化简。
simple(s); %调用MATLAB的其他函数对表示式进行综合化简。并显示化简过程
sym(1.5); %数值表达式转换为符号表达式 numeric('sqrt(5)'); %符号表达式转换为数值表达式 eval('sqrt(5)'); %符号表达式转换为数值表达式
findsym(s,n);
%返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。
PS:在求函数的极限导数和积分时:如果用户没有明确指定自变量,MATLAB将按缺省原则findsym(s,1)找到缺省变量(离x最近的符号变量);
使用sym函数可以建立符号矩阵并化简
m=sym('[1/(a+x),1;2;1/(b+y)'];
对矩阵使用的函数同样可以对符号矩阵使用
transpose(s); %返回s矩阵的转置矩阵 determ(s); %返回s矩阵的行列式值 diag(s); %以矩阵s的元素作为矩阵X的主对角线元素 triu(s); %返回矩阵s上三角矩阵 tril(s); %返回矩阵s下三角矩阵 inv(s); %返回矩阵s的逆矩阵 det(s); %返回矩阵s的行列式的值 rank(s); %返回矩阵的秩 eig(s); %返回矩阵的特征值和特征向量
(1)概念
(2)MATLAB实现
fourier(f,x,t); %求函数f(x)的傅里叶像函数F(t)
ifourier(f,t,x); %求傅里叶像函数F(t)的原函数f(x).
(1)概念
(2)MATLAB实现
laplace(fx,x,t); %求函数f(x)的拉普拉斯像函数F(t)
ilaplace(Fw,t,x); %求拉普拉斯像函数F(t)的原函数f(x)
(1)概念
(2)MATLAB实现
ztrans(fn,n,z); %求函数f(n)的Z变换像函数F(z)
iztrans(Fz,z,n); %求函数F(z)的Z变换原函数f(n)
symsum(s,v,n,m); %s表示一个技术的通项,是一个符号表达。 %v是求和向量 %n和m是开始项和末项(m可以取inf)
taylor(f,v,n,a); %将函数f按变量v展开为泰勒级数 %展开到第n想为止,n的缺省值为6 %a为在何处展开,默认a=0