matlab笔记总结
sym syms
精确符号数字:
eg:sin(0.3) sin(sym(0.3))
创建符号变量:
eg: x=sym(‘x’) %创建单个复数域的变量x
y=sym(‘y’,‘positive’) or y=sym(‘y’,‘real’) %创建单个正实数域or单个创建单个实数域
sym a b %创建多个复数域的变量a b
sym c d r real %创建多个实数域的变量c d r
创建符号函数
eg:syms a b c x y
sym F(X,Y,Z)
f(x,y)=a*x2+b*y2+c
认定自由变量
symvar(Eq,1)… %查看自由变量
自由变量次序
x y w z v … %与x越近越前
求解方程
solve(Eq) %用默认变量求解问题
solve(Eq,x) %Eq为方程,x为所指定的自由变量,用指定的自由变量求解
eg:Eq=uw^2 + zw - v 与 g(z)=uw^2 + zw==v
对solve(Eq) 和 solve(g(z))结果是一样的,默认的自由变量w
Matlab计算通过MuPAD在内存空间执行完成,MuPAD默认在复数域里工作,且旨在约束范围内工作
由assumption定义的新假设 assume(assumption)
eg:assume(real(x)>0) %假设实部大于0
对表达式expr进行属于集合set的定义新假设 assume(expr,set)
eg:assume(x,‘integer’) %也可以输入rational,real
继续追加假设 assumeAlso
创建带res限制性假设的符号变量a
a=sym(‘a’,res) (or syms a res)%res可取positive和real
撤销对变量x的假设:
syms x clear
显示变量x的限定性假设
assumption(x)
函数替换
subs(f1,g,t) %将f1中的g换成t
eg: f1=a*sin(x)+b
f2=sub(f1,sin(x),log(y)) %将sin(x)替换成log(y)
f3=sub(f1,x,[0,pi/2,pi] %将x替换成集合
化简命令 simplify(expr)
数值解 eval(F)
求极限:
lim(f,x,a) %求极限
lim(f,x,inf) %求无穷大的极限
lim(f,x,a,‘right’) %求右极限
limit(f,x,a,‘left’) %求左极限
求导数:df=diff(f,x,n)
求泰勒展开:r=talor(f,x,a,‘order’,n)
求积分:
int(f,x) %f对x的不定积分
int(f,x,a,b) %f对x以a为下限,b为上限的定积分
求(微分)方程
Dx表示dx/dt
Dnx表示x对t的n次导
S=dsolve(‘eq1,eq2,…,eqn’,‘cond1,cond2,…,condn’,‘t’) %eq为方程,cond为初始条件,t为变量
行列式:det(A)
对角阵:diag(A)
逆矩阵:inv(A)
秩:rank(A)
特征值分解:[V,D]=eig(A) %AV=VD
左除\
求解(一般)方程
s=solve(eq1,eq2,…,eqn,x1,x2,…,xn)
符号计算结果可视化
ezplot ezplot3 ezsurf
获取维度
ndims(A)
获取规模
size(A)
获得最大维度
length(A)
生成向量
X=a:inc:b %按间隔inc生成行向量,若inc省略,默认为1
X=linspace(a,b,n) %按间隔(b-a)/(n-1)等距生成行向量
X=logspace(a,b,n) %按对数等距生成
对已生成的矩阵进行修改
reshape:
eg:a=1:8
A=reshape(a,4,2)%A是将1行8列矩阵a改写乘4行2列后的形式
flipud(A) %数组上下交换
fliplr(A) %数组元素左右交换
rot90(A,n) %将数组A逆时针旋转90度n次
赋值
eg:C=B>0.5 %判断b是否大于0.5,是的为1,不是的为0,并作为新数组赋予C
E=B© %将B中满足C为1的取出作为新数组E
B©=NaN %将NaN赋予B中满足C为1的数
数组乘:.*
数组左除or右除:.\或./
数组幂:.^
不等于:~=
与:& 或:| 非:~
运算关系:算数>关系>逻辑>赋值
plot画图
1.y=f(x)型
x= %定义域
y=f(x)
plot(x,y)
2.含t参数型
t= %定义域
x=f(t)
y=g(t)
plot(x,y)
3.分段函数y=f1(x)+f2(x)+…fn(x)
(N段定义域)
L1=
L2=
…
LN=
y=f1(x).*L1+f2(x).*L2+…+fn(x).*Ln
4.多段函数
plot(x1,y1,x2,t2,…)
y=zeros(size(x)) %定义和x一样大的y
xlable(’ ') %设置横坐标标题为
axis(x1,x2,y1,y2) %坐标轴取值
axis equal %坐标轴等宽