1217MATLAB几种题型的整理.docx

上传人:b****3 文档编号:3940661 上传时间:2023-05-06 格式:DOCX 页数:16 大小:253.89KB
下载 相关 举报
1217MATLAB几种题型的整理.docx_第1页
第1页 / 共16页
1217MATLAB几种题型的整理.docx_第2页
第2页 / 共16页
1217MATLAB几种题型的整理.docx_第3页
第3页 / 共16页
1217MATLAB几种题型的整理.docx_第4页
第4页 / 共16页
1217MATLAB几种题型的整理.docx_第5页
第5页 / 共16页
1217MATLAB几种题型的整理.docx_第6页
第6页 / 共16页
1217MATLAB几种题型的整理.docx_第7页
第7页 / 共16页
1217MATLAB几种题型的整理.docx_第8页
第8页 / 共16页
1217MATLAB几种题型的整理.docx_第9页
第9页 / 共16页
1217MATLAB几种题型的整理.docx_第10页
第10页 / 共16页
1217MATLAB几种题型的整理.docx_第11页
第11页 / 共16页
1217MATLAB几种题型的整理.docx_第12页
第12页 / 共16页
1217MATLAB几种题型的整理.docx_第13页
第13页 / 共16页
1217MATLAB几种题型的整理.docx_第14页
第14页 / 共16页
1217MATLAB几种题型的整理.docx_第15页
第15页 / 共16页
1217MATLAB几种题型的整理.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

1217MATLAB几种题型的整理.docx

《1217MATLAB几种题型的整理.docx》由会员分享,可在线阅读,更多相关《1217MATLAB几种题型的整理.docx(16页珍藏版)》请在冰点文库上搜索。

1217MATLAB几种题型的整理.docx

1217MATLAB几种题型的整理

MATLAB几种题型的整理

说明:

最好都看一下,要不也好复制粘贴是吧?

蓝色字体是程序,可直接复制粘贴进matlab运行。

缺曲线拟合,实在不会!

希望大家都考过开心回家过年!

一、数组和矩阵

(1)一维数组的创建:

x=[123456],创建出来的是一个1行6列的向量。

可以在方程组AX=b中创建b的值用到。

(2)linspace的运用:

linspace(1,2,10)创建的是区间[1,2]中等划分10个份,可以用来创建坐标轴,一维的二维的都可以,如果划分的份数越多则图像拟合度越高,即越圆滑。

(3)矩阵的创建:

y=[123;456],分号代表矩阵换行,创建出2行3列的矩阵。

索引:

y(4)为矩阵从上到下,以列的形式数出的数,这里是1,4,2,5故y(4)=5,同样y(2,2)是y矩阵2行2列对应的数,为5。

(4)幂运算、指数运算、对数运算:

x=rand

(2)(生成随机二维矩阵)

y=x.^3(矩阵每个对应元素的3次幂)

z=exp(x)(表示

u=log(x)(表示

的对数)

(5)几种特殊矩阵的生成

全零阵:

zero(n)或zero(m,n),表示n维全零阵和m*n型全零阵。

单位阵:

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的值:

A=[123;113]

b=[4;6]

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',t,y,'b:

.',y,z,'g:

+');等

(2)分幅subplot(几行,几列,第几个位置),plot(自变量,因变量,’颜色:

线型’);

例:

t=linspace(0,2*pi,30);

x=sin(t);

y=cos(t);

z=tan(y);

subplot(2,2,1),plot(t,x,'r:

o');

subplot(2,2,2),plot(t,y,'b');

subplot(2,2,3),plot(y,z,'g');

(3)图形注释:

常用的有title(图形标题),text(标注数据点),xlable(x坐标轴标记),ylable(y坐标轴标记),grid(给图形加上网格)。

例1:

t=linspace(0,2*pi,30);

x=sin(t);

y=cos(t);

z=tan(y);

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('sin(t)','cos(t)','tan(y)');%加图例图如下

例2:

t=linspace(0,2*pi,30);

x=sin(t);

y=cos(t);

z=tan(y);

subplot(2,2,1),plot(t,x,'r:

o');title('x=sin(t)');%加标题sin(t)

subplot(2,2,2),plot(t,y,'b');title('y=cos(t)');

subplot(2,2,3),plot(y,z,'g');title('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);%输出此三维图

title('noshading');%图像名称命名

subplot(2,2,2);

surf(X,Y,Z);

shadingflat;

title('shadingflat');

subplot(2,2,3);

mesh(X,Y,Z);

shadingfaceted;

title('shadingfaceted');

subplot(2,2,4);

surf(X,Y,Z);

shadinginterp;

title('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);是同时生成围裙

title('抛物面');

holdon的用法,将两个三维函数画在一个图上。

例:

[x,y]=meshgrid(-4:

0.1:

4);

z=x.^2+y.^2;

u=x.^4+y.^4;

surf(x,y,z);

holdon

surf(x,y,u);

title('俩抛物面');

三维曲面加注释:

[x,y]=meshgrid(-4:

0.1:

4);

z=x.^2+y.^2;

u=x.^4+y.^4;

surf(x,y,z);

holdon

surf(x,y,u);

title('俩抛物面');

xlabel('x\in[-4,4]','fontweight','bold');%意思是x属于[-4,4],加粗

ylabel('y\in[-4,4]','fontweight','bold');

text(-4,-4,4^2+4^2,'x.^2+y.^2','fontsize',25);

text(-4,-4,4^4+4^4,'x.^4+y.^4','fontsize',25);%和二维的一样,在图像上选一个点,我选的(-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的乘积)

A=[123;456;789];

[L,U]=lu(A);

[L,U,P]=lu(A)

QR分解(将一个矩阵分解成一个正交矩阵和一个上三角矩阵的乘积)

A=[123;456;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;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',0,1)

(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);

end

然后定义不等式右边为0的约束条件function文件,我定义的名字叫ztcon1:

function[c1,ceq]=ztcon1(x)%可以有ceq1、ceq2等,往[]加就行了

c1=(x

(1)-1)^2-x

(2);

ceq=0;

end

最后定义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;

end

然后调用

X=fminsearch('ztfun3',[0,0])

(4)二次规划问题:

和(3)很像,可以说是相同的,数学模型是

例:

求解下面二次规划问题

这里的海色矩阵是自己求的,

H=[1-1;-12];

f=[-2;-6];

A=[11;-12;21];

b=[2;2;3];

lb=[0;0];%同zeros(2,1)

[x,fval]=quadprog(H,f,A,b,[],[],lb)%[]代表没有Aeq和beq约束对吧,有就定义,没有就不定义矩阵了。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2