符号变量的创建
>> sysm q w e r; %定义符号变量
>> q=w*e+r;
q = r + e*w
>>f1=sym('a+x^2+b*x+c') %创建符号变量
f1 = x^2 + b*x + a + c
%'a+x^2+b*x+c'只能写在一行。可以使用pi、inf/INF、i/j、*、/、exp()等特殊变量和函数
数值计算与符号计算的对比
>> a=[1 2 3;4 5 6;7 8 9];b=[1;2;3];
>> c=a*b
c =
14
32
50
>> syms x y;
>> z=x*y
z = x*y
>>f1=sym('a+x^2+b*x+c')
f1 = x^2 + b*x + a + c
符号表达式的运算
>> f1=sym('1/(a+b)');
>> f2=sym('2*a/(a+b)');
>> f3=sym('(a+1)*(b+1)*(a-b)');
>> f1+f2 %符号加
ans = (2*a)/(a + b) + 1/(a + b)
>> f1-f2 %符号减
ans = 1/(a + b) - (2*a)/(a + b)
>> f1*f3 %符号乘
ans = ((a - b)*(a + 1)*(b + 1))/(a + b)
>> f1/f3 %符号除
ans = 1/((a + b)*(a - b)*(a + 1)*(b + 1))
>> f1^2 %符号幂
ans = 1/(a + b)^2
函数运算
合并、展开、因式分解、分数形式提取、化解
函数 | 具体说明 |
---|---|
collect函数 | 将符号表达式中相同幂次的项进行合并 |
expand函数 | 将符号表达式展开 |
factor函数 | 对符号表达式进行因式分解 |
numden函数 | 将符号表达式转换为分子与分母形式 |
simplify函数 | 利用代数中的函数规则对符号表达式进行化解 |
>> f1=sym('(exp(x)+x)*(x+2)');
>> f2=sym('a^3-1');
>> f3=sym('1/a^4+2/a^3+3/a^2+4/a+5');
>> f4=sym('sin(x)^2+cos(x)^2');
>> collect(f1) %合并
ans =x^2 + (exp(x) + 2)*x + 2*exp(x)
>> expand(f1) %展开
ans =2*x + 2*exp(x) + x*exp(x) + x^2
>> factor(f2) %因式分解
ans =[ a - 1, a^2 + a + 1]
>> [m,n]=numden(f3) %分数形式提取
m =5*a^4 + 4*a^3 + 3*a^2 + 2*a + 1
n =a^4
>> simplify(f4) %化简
ans =1
%——————————————————————————————————————————————————————————————
%合并同类项,默认按x合并,也可以指定变量
>> f6=sym('a*x^2+b*x*y+c*y^2+d*y*x');
>> collect(f6)
ans = a*x^2 + (b*y + d*y)*x + c*y^2
>> collect(f6,'y')
ans = c*y^2 + (b*x + d*x)*y + a*x^2
%因式分解后的因式会存放数组中
>> f7=sym('x^4-1');
>> factor(f7)
ans = [ x - 1, x + 1, x^2 + 1]
反函数
>> syms x y;
>> finverse(1/tan(x))
ans = atan(1/x)
>> f=x^2+y;
>> finverse(f,x) %求反函数,自变量为x
ans = (x - y)^(1/2)
>> finverse(f,y) %求反函数,自变量为y
ans = - x^2 + y
复合函数
函数 | 具体说明 |
---|---|
compose(f,g) | 求f=f(x)和g=g(x)的复合函数f(g(x)); |
compose(f,g,z) | 求f=f(x)和g=g(x)的复合函数f(g(z)); |
>> syms x y z
>> f=1/(1+x^2);
>> g=sin(y);
>> compose(f,g)
ans = 1/(sin(y)^2 + 1)
>> compose(f,g,z)
ans = 1/(sin(z)^2 + 1)
表达式替换
subs(s,old,new):用符号或数值变量new替换s中的符号变量old
>> syms a b c;
>> y=a^2+b+c;
>> subs(y,'a','z')
ans = z^2 + b + c
>> subs(y,a,'z') %单个替换
ans = z^2 + b + c
>> subs(y,{
'z','b'},{
'z','sin(x)'}) %多重替换
ans = a^2 + c + sin(x)
%tips:变量old可以用'a'也可以直接用a,即使被替换成了'a'的形式,依然可以在下一次的调用中使用a,new变量就只能使用数值或者符号,所以只能使用'a'的形式
%——————————————————————————————————————————————————————————————
%表达式替换也可以用来求解函数值
>> syms x;
>> y=x^2+3*x+4;
>> subs(y,'x',2)
ans = 14
符号微积分
函数的极限
调用格式
|
具体说明
|
---|---|
limit(f)
|
limv→0f(v)
|
limit(f,a)
|
limv→af(v)
|
limit(f,x,a)
|
limx→af(x)
|
limit(f,x,a,′right′)
|
limx→a+f(x)
|
limit(f,x,a,′left′)
|
limx→a−f(x)
|
分别计算:limx→