首先介绍一下matlab里的符号计算
符号变量可以看成是数学中含参数 的表达式中的参数
matlab能进行像(a+b)(a-b)=a^2-b^2这样的计算
要进行符号计算首先要定义符号变量
定义符号对象的命令是syms
syms可以将多个字符转化为符号变量 比如syms x y z;
syms a b
fab = (a + b)*(a - b)
下面介绍一些符号计算常用的命令~~~
collect 合并同类项
expand 展开表达式
factor 因式分解
numden 得到表达式的分子和分母
simplify 化简符号表达式
subs 将符号表达式的便令用其他符号或者数字代替
微积分的部分
首先看求极限 limit 也可以输入doc limit 或 help limit 查看相关文档
syms x a b c f1=((a^x+b^x+c^x)/3)^(1/x); limit(f1,x,0)
求积分
使用命令int来求定积分或不定积分
int(f,x)就是求不定积分
要求定积分在后面加一个区间就行了
比如int(f,x,0 ,1)
在求定积分中,如果f只有一个符号变量那么第二个参数变量x可以省略。
以二重积分为例
syms x y f=x^2*exp(-y^2); int(int(f,x,0,y),y,0,1)
求微分(导数)
使用命令diff(f,x,n)
对f关于x求n次导数,n=1的时候可以省略不写
泰勒级数展开
使用命令t=taylor(f,n,x,a)
求f在x=a处的n-1阶泰勒展开式 (a不写的话默认为0 ,n不写的话默认为7)
多项式求根
在matlab里面一个行向量还可以表示一个多项式,例如x^4-3*x^3+2*x-1
系数按照降幂排列写在行向量里面, 表示为p=[1 -3 0 2 -1] ,没有的次项要写0
然后可以用命令roots来求这个多项式的根 比如求x2=1
syms x y
[x,y] = solve(x+y==1,x-11*y==5,x,y)
求零点
fzero(fun,x) 可以求fun在x附近的零点。。。
fun = @fun2; % function x0 = 0; % initial point z = fzero(fun,x0)
function y=f(x)
y=sin(x^2)