1、eye(n)或 eye(m,n)全一阵:ones(n)或 ones(m,n)随机阵:rand(n)或 rand(m,n)魔方阵:magic(n)(6)矩阵加减乘除就不说了,直接相同维数x+y等就行。说个Ax=b吧,求x的值:A=1 2 3;1 1 3b=4;6x=Ab再说个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)p
2、lot(自变量,因变量,颜色:线型,自变量,因变量,颜色:线型, 自变量,因变量,颜色:线型)例: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:ob:.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(图形标题),t
3、ext(标注数据点),xlable(x坐标轴标记),ylable(y坐标轴标记),grid(给图形加上网格)。例1:plot(t,x,t,y,y,z);title(sin cos and tan curvestext(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)
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); %输出此三维图n
5、o shading %图像名称命名subplot(2,2,2);shading flat; shading flatsubplot(2,2,3);mesh(X,Y,Z);shading faceted;shading facetedsubplot(2,2,4);shading interp;shading interp画单个图形就更简单了x,y=meshgrid(-4:0.1:4);z=x.2+y.2;surf(x,y,z); %surfc(x,y,z);是同时输出等高线,surfz(x,y,z);是同时生成围裙抛物面hold on的用法,将两个三维函数画在一个图上。u=x.4+y.4;hol
6、d onsurf(x,y,u);俩抛物面三维曲面加注释:xlabel(xin-4,4fontweightbold %意思是x属于-4,4,加粗ylabel(yin-4,4text(-4,-4,42+42,x.2+y.2fontsize,25);text(-4,-4,44+44,x.4+y.4 %和二维的一样,在图像上选一个点,我选的(-4,-4,z(-4,-4)点和(-4,-4,u(-4,-4)点加标注,字体大小是25号字注意,加网格和取消网格是grid on(开)和grid off(关)。不演示了。四、矩阵分析与线性方程组(1)特征值和特征向量例一:B=eye(4); %生成一个对角为1的对
7、角矩阵B(3,2)=2; %和前面讲的一样,给矩阵B的三行二列的数值赋值为2B(4,2)=3; %同上B %输出Bv,d=eig(B) %求特征值和特征向量,d角线对应特征值,v的列代表相应的特征向量,如果写成d=eig(B),则只输出特征值。(2)矩阵对角化例二:A= 1 2 2;2 1 2; 2 2 1;V,D=eig(A) %求特征值及特征向量所组成的矩阵 inv(V)*A*V %都知道,这是用V的逆*A*V,对角化(3)jordan标准型Jordan(A)(4)矩阵的几个常用的分解LU分解(将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积)4 5 6;7 8 9;L,U=lu(
8、A);L,U,P=lu(A)QR分解(将一个矩阵分解成一个正交矩阵和一个上三角矩阵的乘积)A = 1 2 3; 7 8 9; 10 11 12;Q,R = qr(A)乔莱斯基分解(就是R,P = chol(A)(5)线性方程组就是AX=b,建立A和b左除右除就行,上面第一部分有。五、运筹优化(1)线性规划(linear programming),用linprog命令。这样的问题,x,fval=linprog(f,A,b,Aeq,beq,lb,ub),定义好f,不等式系数矩阵A,不等式方程约束b,等式系数矩阵Aeq,等式方程约束beq,一般线性规划问题x都是大于等于0的,所以lb一般都是零向量z
9、eros(n,1)若是Max,先化min,约束化小于等于。f=-0.15; -0.1;-0.08;-0.12;A=1 -1 -1 -1;0 -1 -1 1;b=1;3;Aeq=1 1 1 1 %等式若多就Aeq=1 1 1 1;,beq=1;.;.beq=1lb=zeros(4,1); %即为0;0;0,表示xi都以0为下界,无上界x,fval=linprog(f,A,b,Aeq,beq,lb)(2)有约束的一元函数最小值,用fminbnd(函数f,求最小min,约束boundbnd)形式:这样的问题,直接用x,fval=fminbnd(f,x1,x2)的形式也行,也可定义function文件
10、x,fval=fminbnd(myfun,x1,x2)的形式也行。在(0,1)上求f(x)的最小值方法1:x,fval=fminbnd(x3+cos(x)+x*log(x)/exp(x),0,1)方法2:先定义一个function文件f,我命名为ztfun1function f = ztfun1(x)f=(x3+cos(x)+x*log(x)/exp(x);end记得按F5进行并保存默认路径。然后返回命令窗口输入x=fminbnd(ztfun1(3)有约束的多元函数最小值(重要),用fmincon(函数f,求最小min,限定约束constrainscon)这里面有很多的数,区别是将不等式约束的
11、右边卫0的和不为0的分开写了,我随便举个代表性的例子吧,不一定能算出来,但程序没错就行,考试的时候多了少了上面自己改自己加。首先定义目标函数function文件,我定义的名字叫ztfun2:function f = 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,然后调用fm
12、incon:A=1,-5;-2 3;3 -2;b=0;6;1;Aeq=4 3;1 -1;2 -1;beq=0;-1;2;x0=0 1;lb=0 0;ub=10 10;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)解法二:定义functionfunction y = 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;-1 2;f=-2;-6;A=1 1;-1 2;2 1;b=2;2;lb=0;0; %同zeros(2,1)x,fval=quadprog(H,f,A,b,lb) %代表没有Aeq和beq约束对吧,有就定义,没有就不定义矩阵了。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2