Loading

matlab数模准备-基础

MATLAB常用命令

help 	帮助查询
clc	删除命令窗口的内容(已使用过的命令)
clear	删除内存中的变量(数据)
clf	删除图形窗口的内容
who	列出在MATLAB工作空间中已有的变量
whos	列出驻留变量的同时,还给出维数及性质
home	光标移到命令窗口的左上角
↑	调出刚才使用过的命令
quit	退出MATLAB![image]

向量函数

max	求最大值
min	求最小值
sum	求和
length	求长度
mean	求平均值
median 	求中间值
prod	乘积
sort	从小到大排序![image]

特殊矩阵

[   ]	生成空矩阵
eye(n,m)	生成n×m单位矩阵
ones(n,m)	生成全部元素是1的矩阵
zeros(n,m)	生成全部元素是0的矩阵
rand(n,m) 	生成0~1之间均匀分布的随机矩阵
randn(n,m)	生成均值为0,方差为1的标准正态分布的随机矩阵

矩阵操作

解方程AX=B

在Matlab中矩阵的除法分左除\和右除/ X=A\B 给出线性方程组 AX=B 的一个解 X=B/A 给出线性方程组 XA=B 的一个解.
image

矩阵的数量运算

  1. 转置 A'
  2. inv(A)
  3. 行列式 det(A)

矩阵的关系与逻辑运算

<      小于
<=    小于等于
>      大于
>=    大于等于
==    等于
~=    不等于

运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。
image

插值

interp1(x,y,x1,’method’)

  • nearest 最近插值
  • linear 线性插值
  • spline 三次样条插值
  • cubic 三次插值
>> help interp1
interp1 - 一维数据插值(表查找)

    此 MATLAB 函数 使用线性插值返回一维函数在特定查询点的插入值。向量 x 包含样本点,v 包含对应值 v(x)。向量 xq 包含查询点的坐标。

    vq = interp1(x,v,xq)
    vq = interp1(x,v,xq,method)
    vq = interp1(x,v,xq,method,extrapolation)
    vq = interp1(v,xq)
    vq = interp1(v,xq,method)
    vq = interp1(v,xq,method,extrapolation)
    pp = interp1(x,v,method,'pp')

线性规划

x=linprog(c,A,B,Aeq,Beq,lb,ub)
image

[使用linprog求解]
(https://blog.csdn.net/kswkly/article/details/90485816 "使用linprog求解")

Min 	x1+2*x2+3*x3

	x1+x3<=2
	2*x1+2*x2+x3<=3
	-1*x1-2*x2<=5

	x1+2*x3=2

	0<=x1,x2,x3<=3
c=[1,2,3];
A=[1,0,1;
    2,2,1;
    -1,-2,0];
B=[2,3,5];
Aeq=[1,0,2];
Beq=[2];
lb=[0,0,0];
ub=[3,3,3];
linprog(c,A,B,Aeq,Beq,lb,ub)

https://blog.csdn.net/zhangyu4863/article/details/83504008
使用matlab优化工具箱求解规划问题

绘图

x=4:15; y=[5 8 9 15 25 29 31 30 22 25 27 24];
x1=4:0.5:15;
yn=interp1(x,y,x1,'nearest');    yl=interp1(x,y,x1,'linear'); 
ys=interp1(x,y,x1,'spline');     yc=interp1(x,y,x1,'cubic');
hold on
plot(x,y,'or',x1,yn,'-r');      plot(x,y,'or',x1,yl,'-g');
plot(x,y,'or',x1,ys,'-b');plot(x,y,'or',x1,yc,'-k');
hold off

close all

x=linspace(0,2*pi,101);
y=sin(x);
plot(x,y,'-*r');

close all

x=linspace(0,2*pi,101);
y1=sin(x); y2=cos(x);
plot(x,y1,'-r',x,y2,'-b');

close all

t=0:pi/50:10*pi;

plot3(t,sin(t),cos(t),'r-');

close all

x=-1:0.01:1;
y=-1:0.01:1;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
mesh(X,Y,Z);


close all

x=-6:0.1:6;
y=-6:0.1:6;
 
[x,y]=meshgrid(x,y);
 
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);
 
mesh(x,y,z);

close all

[x,y,z]=peaks;

surf(x,y,z);


函数

sin(x)  	正弦	asin(x)  	反正弦
cos(x)  	余弦	acos(x)  	反余弦
tan(x) 		正切	atan(x) 	反正切
cot(x)		余切	acot(x)		反余切
abs(x)		绝对值	max(x)		最大值
min(x)		最小值	sum(x)		求和
sqrt(x)		开平方	exp(x)		以e为底的指数
log(x)		自然对数	log10(x)	以10为底的对数
sign(x)	符号函数		fix(x)		取整

插值与拟合

插值与拟合的区别:

  • 共性:都是通过已知部分数据求整体的近似函数.
  • 区别:数据拟合不要求近似函数通过所有数据点,而是要求它能较好地反映数据整体变化趋势.插值问题要求所得的近似函数(曲线或曲面)经过所已知的所有数据点.

matlab实现

x=[0 3 5 7 9 11 12 13 14 15];
y=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];
%plot(x,y)
%a=polyfit(x,y,2) %多项式拟合
%y1=polyval(a,2) %计算多项式拟合在2处的值
%y2=interp1(x,y,2,'linear')%一维线性插值(分段线性插值)
%y3=Lagrange(x,y,2)%Lagrange插值
%y4=spline(x,y,xx)

xx=0:0.1:15;
y4=spline(x,y,xx)      %三次方样条数据插值
plot(x,y,'o',xx,y4)

Matlab 多项式拟合

  • a = polyfit(x, y, n):多项式拟合,返回降幂排列的多项式系数.其中 x,y 是数据点的值,n 为拟合的最高次数.
  • y = polyval(a, x):计算拟合的多项式在 x 处的值.
    在处理一些无约束条件的最小二乘拟合时往往会涉及到最小二乘优化,最小二乘优化是一类比较特殊的优化问题,在处理这类问题时,Matlab 也提供了一些强大的函数.在 Matlab 优化工具箱中,用于求解最小二乘优化问题的函数有:lsqlin、lsqcurvefit、lsqnonlin、lsqnonneg

Matlab 数据拟合工具箱

  • 在 Matlab 中的工作区,输入命令 cftool,便会出现如下拟合工具箱
    5 个命令按钮的功能分别如下:
  • Data 按钮:可输出、查看和平滑数据;
  • Fitting 按钮:可拟合数据、比较拟合曲线和数据集;
  • Exclude 按钮:可以从拟合曲线中排除特殊的数据点;
  • Ploting 按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集;

Matlab 一维插值

y = interp1(x0, y0, x,′ method′)

Matlab 二维插值

z = interp2(x0, y0, z0, x, y,′ method′)
其中 x0,y0 分别为 m 维和 n 维向量,表示节点,z0 为 m × n 维矩阵,表示节点值,x,y 为一维数组,表示插值点,x 与 y 应是方向不同的向量,即一个是行向量,另一个是列向量,z 为矩阵,它的行数为 x 的维数,列数为 y 的维数,表示得到的插值,’method’ 的用法同上面的一维插值.

posted @ 2021-08-23 00:44  Yueming-He  阅读(262)  评论(0编辑  收藏  举报