matlab常见符号运算( 因式分解、展开、合并、简化及通分等,计算导数,积分,符号求和、代数方程和微分方程求解)

常见符号运算

因式分解、展开、合并、简化及通分等

因式分解factor(f)

1
2
>> syms x; f=x^6+1;
>> factor(f)

factor 也可用于正整数的分解

函数展开

1
expand(f)

多项式展开

1
2
>> syms x; f=(x+1)^6;
>> expand(f)

三角函数展开

1
2
>> syms x y; f=sin(x+y);
>> expand(f)

合并同类项

collect(f,v): 按指定变量 v 进行合并
collect(f): 按默认变量进行合并

1
2
3
4
>> syms x y;
>> f= x^2*y + y*x - x^2 + 2*x ;
>> collect(f)
>> collect(f,y)

函数简化

y=simple(f): 对 f 尝试多种不同的算法进行简化,返回其中最简短的形式
[y,HOW]=simple(f): y 为 f 的最简短形式,How 中记录的为简化过程中使用的方法。

分式通分

[N,D]=numden(f):
N 为通分后的分子,D 为通分后的分母

1
2
3
>> syms x y;
>> f=x/y+y/x;
>> [N,D]=numden(f)

horner 多项式

horner 多项式:嵌套形式的多项式

1
2
3
>> syms x;
>> f=x^4+2*x^3+4*x^2+x+1;
>> g=horner(f)

计算极限

limit(f,x,a): 计算lim(x→a)f(x)
limit(f,a): 当默认变量趋向于 a 时的极限
limit(f): 计算 a=0 时的极限
limit(f,x,a,‘right’): 计算右极限
limit(f,x,a,‘left’): 计算左极限

计算导数

g=diff(f,v):求符号表达式 f 关于 v 的导数
g=diff(f):求符号表达式 f 关于默认变量的导数
g=diff(f,v,n):求 f 关于 v 的 n 阶导数

1
2
3
>> syms x;
>> f=sin(x)+3*x^2;
>> g=diff(f,x)

计算积分

int(f,v,a,b): 计算定积分∫abf(v)dv
int(f,a,b): 计算关于默认变量的定积分
int(f,v): 计算不定积分∫f(v)dv
int(f): 计算关于默认变量的不定积分

符号求和

symsum(f,v,a,b): 求和∑av=af(v)
symsum(f,a,b): 关于默认变量求和
计算级数 ∑n=11/n2 及其前100项的部分和

1
2
3
>> syms n; f=1/n^2;
>> S=symsum(f,1,inf)
>> S100=symsum(f,1,100)

其他运算

finverse(f,v):求 f 关于指定变量 v 的反函数
finverse(f):求 f 关于默认变量的反函数
计算函数f=x2+2*t的反函数

1
2
3
>> syms x t; f=x^2+2*t;
>> g1=finverse(f)
>> g2=finverse(f,t)

代数方程符号求解

solve(f,v):求方程关于指定自变量的解,f 是符号表达式(低版本还可以用字符串表示的方程、表达式);
solve 也可解方程组(包含非线性);
得不到解析解时,给出数值解。

求一元二次方程 ax2 + bx + c = 0 的根

1
2
>> syms a b c x
>> solve(a*x^2+b*x+c)