det(A) 行列式的值
rank(A) 矩阵的秩
inv(A) 逆矩阵
format rat 显示转化为有理数形式
format 显示为浮点数
定义矩阵时,最后带上单引号是转置:
eg:
b=[15 15 15]'
eig(A) A的特征值
null(A) 求解矩阵的零空间
A(3,:)=[1 1 1] 将矩阵第三行换为1 1 1 ,也可以为空,即去掉第三行
A=hilb(3) 希尔伯特矩阵
cond(A) 条件数 ,误差放大倍数
x=linspace(0,1,10) 等距间隔 区间是0-1,十个点
x(5)=0.6 把第五个换成0.6
norm(y-x) 求(y-x)的范数,求y与x的差值(算误差)。norm(y-x,2) 默认为2范数:对应分量相减的平方和再开方。
max(A) 查找矩阵中最大行
A(:) 按列拉直
max(A(:))即可直接寻找最大值:
[M,Id]=find(A==max(A(:))) 返回A中最大值的位置,M接收为行,Id接收为列
同样可以:[M,Id]=find(A==9)
syms x y 定义变量x和y
subs(f,x,0) 给函数f中的x带0
limit(f,x,0,'left') 取函数f中x从左侧向0的极限
limit(sin(x)/x,x,inf) 从函数sin(x)/x取x的极限
diff(f,x,2) 给函数f对x求2阶导
factor(diff(f,x,2)) 分解因式化简
simple(diff(f,x,2)) 化简
int(f,x) 不定积分
int(f,x,0,pi) 对f中变量x从0~pi的积分
quad('sin(x)./x',1,pi/2,1e-6) 数值积分(一定得出一个结果) ,从1~pi/2积分,这个点是拆分成若干个点计算
taylor(sin(x),pi/2,6) 将sin(x)在pi/2展开成6阶泰勒展开
taylor(f,y,0,6) 函数f中指定y变量在0处展开6阶泰勒
diff(f,5)/5! 可以通过对函数求5次导并除以5的阶乘,得出五次的系数
求极大值 diff(f,1)求导,然后将求导的式子取0点。
fminbnd(f,0,pi) 求函数f在0~pi中的最小值
例如画f图像 t=linspace(0,pi,50) 声明t为0-pi的50个点
yt=subs(f,x,t) 将x=t(50个点)带入
plot(t,yt,'-r','Linewidth',2) 线形红色线宽2
hold on 图像画上去
legend('曲线','最值点') 按画上去的顺序右上角标志
jacobian([sin(x)*exp(y);cos(x)*exp(y)],[x,y]) 雅克比矩阵的定义
一维图像:
function huitu
f1=inline('sin(x).*cos(exp(x))','x');//与下面定义方法皆可
a=-pi;b=pi;n=50; //自变量范围:-π~π
x=linspace(a,b,n);
y1=f1(x);
y2=f2(x);
y3=f3(x);
plot(x,y1,'r--p','linewidth',1)
hold on
plot(x,y2,'b--s','linewidth',2)
plot(x,y3,'g--*','linewidth',3)
legend('方法一','方法二','方法三')
hold off
function y=f2(x)
y=sin(x).*sin(exp(-x.^2));
function y=f3(x)
y=sin(x).*sin(exp(x)+f2(x));
- subplot(1,3,1) 一行三列第一个... 其他插入,代码插入位置在绘图前面。
- 去掉hold on 和 hold off (可不去)
二维图形
function huitu3v
a=-pi;b=2*pi;n=60;
c=-pi;d=pi;m=30;
x=linspace(a,b,n); //在x方向区间和分的点
y=linspace(c,d,m);
[x,y]=meshgrid(x,y); //织网(四边形)
z=f(x,y); //网的z在下面定义了
p1=mesh(x,y,z) //织网
set(p1,'facecolor','g','edgecolor','r')// 设定表面为绿色,阴影为红色
hold on
view(-120,64)
hold off
function z=f(x,y)
z=sin(x).*sin(exp(y));
三维图像
isosurface(x,y,z,v,0) 意为V=x^2+y^2+z^2=0
数据拟合
多项式,非多项式逼近
根据数据点猜背后模型
多项式拟合
p=polyfit(x,y,9) 多项式拟合,对x,y使用9个点拟合
y1=polyval(p,x) 使用上面的p
差值命令
xt=linspace(x(1),x(end),50) 从1-无穷,50个点
interpl(x,y,xt,'linear') 线性差值
interpl(x,y,xt,'cubic') 三次多项式
非线性拟合
y=fmx(bt,x)
y=sin(bt(1)*x+bt(2).*exp(bt(3)*...)
bt0=[1 1 1] 所选初值
需要出现在函数fmx中:
nlinfit(x,y,@fmx,bt0)