1217MATLAB几种题型的整理文档格式.docx
《1217MATLAB几种题型的整理文档格式.docx》由会员分享,可在线阅读,更多相关《1217MATLAB几种题型的整理文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
eye(n)或eye(m,n)
全一阵:
ones(n)或ones(m,n)
随机阵:
rand(n)或rand(m,n)
魔方阵:
magic(n)
(6)矩阵加减乘除就不说了,直接相同维数x+y等就行。
说个Ax=b吧,求x的值:
A=[123;
113]
b=[4;
6]
x=A\b
再说个xA=b吧,求x的值:
x=b/A
(7)常见矩阵函数:
det(x),求x的行列式;
rank(x),求x的秩;
A’表示A的转制
B=inv(A)表示求A的逆矩阵。
二、平面数据绘图
(1)格式为:
1)先定义横坐标,可以用linspace(0,2*pi,30)或0:
pi/100:
2*pi等方式定义。
2)定义函数x=sin(t)等。
3)plot(自变量,因变量,’颜色:
线型’,自变量,因变量,’颜色:
线型’,自变量,因变量,’颜色:
线型’)
例:
t=linspace(0,2*pi,30);
x=sin(t);
y=cos(t);
z=tan(y);
plot(t,x,'
r'
t,y,'
b'
y,z,'
g'
);
%这里我没加线型,有要求的话plot(t,x,'
r:
o'
b:
.'
g:
+'
等
(2)分幅subplot(几行,几列,第几个位置),plot(自变量,因变量,’颜色:
线型’);
subplot(2,2,1),plot(t,x,'
subplot(2,2,2),plot(t,y,'
subplot(2,2,3),plot(y,z,'
(3)图形注释:
常用的有title(图形标题),text(标注数据点),xlable(x坐标轴标记),ylable(y坐标轴标记),grid(给图形加上网格)。
例1:
plot(t,x,t,y,y,z);
title('
sincosandtancurves'
text(3*pi/4,sin(3*pi/4),'
sin(t)'
%在点(3*pi/4,sin(3*pi/4))处加标注sin(t)
text(3*pi/2,sin(3*pi/2),'
cos(t)'
%在点(3*pi/2,cos(3*pi/2))处加标注cos(t)
text(sin(3*pi/4),tan(sin(3*pi/4)),'
tan(y)'
%在点sin(3*pi/4),tan(sin(3*pi/4))处加标注tan(y)
legend('
'
%加图例图如下
例2:
x=sin(t)'
%加标题sin(t)
y=cos(t)'
z=tan(y)'
图如下
三、三维绘图
mesh画的是网格曲面,surf画的是曲面数据矩阵。
直接做个案例说明吧
x=linspace(-4,4,40);
%定义x的范围
y=linspace(-2,2,20);
%定义y的范围
[X,Y]=meshgrid(x,y);
%生成以x,y为长度的XY平面
Z=X.^2+2*sin(X*pi)+cos(Y*pi);
%Z=f(X,Y)函数表达式
subplot(2,2,1);
%分隔图像,在2行2列的第一个位置输出此图
surf(X,Y,Z);
%输出此三维图
noshading'
%图像名称命名
subplot(2,2,2);
shadingflat;
shadingflat'
subplot(2,2,3);
mesh(X,Y,Z);
shadingfaceted;
shadingfaceted'
subplot(2,2,4);
shadinginterp;
shadinginterp'
画单个图形就更简单了
[x,y]=meshgrid(-4:
0.1:
4);
z=x.^2+y.^2;
surf(x,y,z);
%surfc(x,y,z);
是同时输出等高线,surfz(x,y,z);
是同时生成围裙
抛物面'
holdon的用法,将两个三维函数画在一个图上。
u=x.^4+y.^4;
holdon
surf(x,y,u);
俩抛物面'
三维曲面加注释:
xlabel('
x\in[-4,4]'
fontweight'
bold'
%意思是x属于[-4,4],加粗
ylabel('
y\in[-4,4]'
text(-4,-4,4^2+4^2,'
x.^2+y.^2'
fontsize'
25);
text(-4,-4,4^4+4^4,'
x.^4+y.^4'
%和二维的一样,在图像上选一个点,我选的(-4,-4,z(-4,-4))点和(-4,-4,u(-4,-4))点加标注,字体大小是25号字
注意,加网格和取消网格是gridon(开)和gridoff(关)。
不演示了。
四、矩阵分析与线性方程组
(1)特征值和特征向量
例一:
B=eye(4);
%生成一个对角为1的对角矩阵
B(3,2)=2;
%和前面讲的一样,给矩阵B的三行二列的数值赋值为2
B(4,2)=3;
%同上
B%输出B
[v,d]=eig(B)%求特征值和特征向量,d角线对应特征值,v的列代表相应的特征向量,如果写成d=eig(B),则只输出特征值。
(2)矩阵对角化
例二:
A=[122;
212;
221];
[V,D]=eig(A)%求特征值及特征向量所组成的矩阵
inv(V)*A*V%都知道,这是用V的逆*A*V,对角化
(3)jordan标准型
Jordan(A)
(4)矩阵的几个常用的分解
LU分解(将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积)
456;
789];
[L,U]=lu(A);
[L,U,P]=lu(A)
QR分解(将一个矩阵分解成一个正交矩阵和一个上三角矩阵的乘积)
A=[123;
789;
101112];
[Q,R]=qr(A)
乔莱斯基分解(就是[R,P]=chol(A))
(5)线性方程组就是AX=b,建立A和b左除右除就行,上面第一部分有。
五、运筹优化
(1)线性规划(linearprogramming),用linprog命令。
这样的问题,[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub),定义好f,不等式系数矩阵A,不等式方程约束b,等式系数矩阵Aeq,等式方程约束beq,一般线性规划问题x都是大于等于0的,所以lb一般都是零向量zeros(n,1)
若是Max,先化min,约束化小于等于。
f=[-0.15;
-0.1;
-0.08;
-0.12];
A=[1-1-1-1;
0-1-11];
b=[1;
3];
Aeq=[1111]%等式若多就Aeq=[1111;
…;
…],beq=[1;
..;
..]
beq=[1]
lb=zeros(4,1);
%即为[0;
0;
0],表示xi都以0为下界,无上界
[x,fval]=linprog(f,A,b,Aeq,beq,lb)
(2)有约束的一元函数最小值,用fminbnd(函数f,求最小min,约束bound——bnd)
形式:
这样的问题,直接用[x,fval]=fminbnd(f,x1,x2)的形式也行,也可定义function文件[x,fval]=fminbnd(‘myfun’,x1,x2)的形式也行。
在(0,1)上求f(x)的最小值
方法1:
[x,fval]=fminbnd('
(x^3+cos(x)+x*log(x))/exp(x)'
0,1)
方法2:
先定义一个function文件f,我命名为ztfun1
functionf=ztfun1(x)
f=(x^3+cos(x)+x*log(x))/exp(x);
end
记得按F5进行并保存默认路径。
然后返回命令窗口输入
x=fminbnd('
ztfun1'
(3)有约束的多元函数最小值(重要),用fmincon(函数f,求最小min,限定约束constrains——con)
这里面有很多的数,区别是将不等式约束的右边卫0的和不为0的分开写了,我随便举个代表性的例子吧,不一定能算出来,但程序没错就行,考试的时候多了少了上面自己改自己加。
首先定义目标函数function文件,我定义的名字叫ztfun2:
functionf=ztfun2(x)
f=x
(1)^2+x
(2)^2-x
(1)*x
(2)-2*x
(1)-5*x
(2);
然后定义不等式右边为0的约束条件function文件,我定义的名字叫ztcon1:
function[c1,ceq]=ztcon1(x)%可以有ceq1、ceq2等,往[]加就行了
c1=(x
(1)-1)^2-x
(2);
ceq=0;
最后定义A,b,Aeq,beq,x0,lb,ub,然后调用fmincon:
A=[1,-5;
-23;
3-2];
b=[0;
6;
1];
Aeq=[43;
1-1;
2-1];
beq=[0;
-1;
2];
x0=[01];
lb=[00];
ub=[1010];
[x,fval]=fmincon('
ztfun2'
x0,A,b,Aeq,beq,lb,ub,'
ztcon1'
(3)无约束多元函数最小值,用fminsearch,解决问题为没有约束条件,但是要求最小点。
求y的最小值点
解法一:
X=fminsearch('
2*x
(1)^3+4*x
(1)*x
(2)^3-10*x
(1)*x
(2)+x
(2)^2'
[0,0])
解法二:
定义function
functiony=ztfun3(x)
y=2*x
(1)^3+4*x
(1)*x
(2)^3-10*x
(1)*x
(2)+x
(2)^2;
然后调用
ztfun3'
(4)二次规划问题:
和(3)很像,可以说是相同的,数学模型是
求解下面二次规划问题
这里的海色矩阵是自己求的,
H=[1-1;
-12];
f=[-2;
-6];
A=[11;
-12;
21];
b=[2;
2;
lb=[0;
0];
%同zeros(2,1)
[x,fval]=quadprog(H,f,A,b,[],[],lb)%[]代表没有Aeq和beq约束对吧,有就定义,没有就不定义矩阵了。