MATLAB数学软件第1页共14页数学建模暑期培训-MATLAB软件庄思发1熟悉软件操作界面1.1命令窗口MATLAB执行命令的主窗口,命令于提示符“”之后输入,回车确认执行;1.2命令历史窗口显示用户过去所使用过全部命令,可双击后重新执行,避免重新输入命令,或使用上、下方向键调出修改后再重新执行;MATLAB数学软件第2页共14页1.3工作空间窗口显示当前MATLAB在计算机内存中存在的变量、数据等详细信息,以便用户查看,可删除其中若干个或全部删除;1.4当前工作目录窗口显示用户当前工作时所处在的目录位置,该目录是用户存放及打开文件时MATLAB指向的默认目录,可通过其目录选择器重新指向新用户目录;在该窗口中可以观察到当前目录中所有文件的详细情况,可以直接选定某人文件,通过单击右键运行或打开该文件进行编辑。MATLAB数学软件第3页共14页2基本运算2.1四则运算+-*/\2.2乘方、开方“^”sqrt()例:32:2^3↙312:2^(1/3)↙2.3指数函数exp(x),e:exp(1);;2e:exp(2);2.4标点符号逗号(,)输出结果;分号(;)不输出结果2.5常量与变量常量圆周率:pi;无穷大:inf;等变量定义变量不必事先声明,MATLAB会通过变量所获得的值自动识别,变量名必须以字母开头,后可接字母、数字或下划线,不可使用空格与标点符号;注意:变量名区分大、小写;2.6常用函数:三角函数sin(x)、cos(x)、asin(x)、acos(x)、tan(x)、atan(x)、cot(x)acot(x).指数、对数函数exp(x)log(x)log10(x)log2(x).四舍五入round(x)求余mod(x,y):余数符号与y相同;MATLAB数学软件第4页共14页rem(x,y):余数符号与x相同.舍入函数fix(x):与零最接近的整数;floor(x):不大于x的整数;ceil(x):不小于x的整数.求模(绝对值)abs(x)3数值运算3.1向量运算向量(数组)表示元素用中括号括起,元素间用逗号或空格或分号隔开;例:a=[24678]↙b=[1;4;7;9]↙等差向量冒号生成法初值:步长:终值;例:c=1:10;↙d=1:0.5:10↙linspace(初值,终值,分段数)例:e=linspace(1,10,10)↙linspace(0,10,6)↙向量(数组)运算向量(数组)与常数的加、减例:a=[235]↙a+3,a-2↙向量(数组)与常数的乘、除例:a*2,a/3↙向量与向量的加、减法:元素个数必须相同MATLAB数学软件第5页共14页例:a=[135],b=[2,4,6],c=1:4,a+b,a-b,a+c↙向量点积:dot(a,b);向量维数不超过3例:dot(a,b)↙向量叉积:cross(a,b);向量维数不超过3例:cross(a,b)↙数组的乘、除:.*;./;例:a.*b,a./b↙数组的乘方:.^例:a.^2↙向量(数组)元素的选取单下标a([])例:a=1:10;a(7)↙%选取向量a的第七个元素例:a([137])↙%选取向量a的第1、3、7个元素向量(数组)排序sort(a):从小到大;例:a=rand(1,10),sort(a)↙%产生10个元素的行向量,并进行升序排列向量(数组)长度或大小的检测length(a);例:length(a)↙%显示向量元素个数size(a)例:size(a)↙%将以向量形式显示矩阵a的行数与列数向量(数组)求和sum(a)例:sum(a)↙%求向量a的元素总和向量与多项式表示:nnnaxaxaxp110)(:],,,[10naaap(降幂排列)MATLAB数学软件第6页共14页例:323)(341xxxxp,12)(232xxxp,则该多项式在MATLAB中可如下表示p1=[13023],p2=[01201]↙多项式相加、减:向量的相加、减(注意补零)例:p1+p2,p1-p2↙多项式的积:conv(p1,p2);例:conv(p1,p2)↙多项式的除:deconv(p1,p2);[q,r]=deconv(p1,p2)例:deconv(p1,p2)↙%只输出商式[q,r]=deconv(p1,p2)↙%输出商式与余式3.2矩阵(多元数组)运算矩阵(多元数组)表示元素用中括号括起,元素间用逗号或空格分列,用分号分行;例:矩阵268493561,在MATLAB中可如下输入:A=[165;394;862]↙特殊矩阵全1矩阵与全零矩阵:ones(m,n);zeros(m,n);作用:预分配空间例:ones(3)↙%产生3阶全1方阵ones(3,4)↙%产生3行4列的全1矩阵随机矩阵:rand(m,n):产生元素介于0,1之间的矩阵例:rand(3),rand(3,4)↙%分别产生3阶与3行4列随机矩阵矩阵(多元数组)的运算矩阵(多元数组)与常数的加、减例:A+3↙A-3,5-A↙矩阵(多元数组)与常数的乘、除例:A*3↙A/2↙MATLAB数学软件第7页共14页矩阵与矩阵的加、减法:形状大小必须相同例:A+B↙%A,B行、列数相同矩阵与矩阵的乘、除法:*;与/或\:遵循矩阵乘除运算法则例:A*B,A/B↙%矩阵B的行列式不为0矩阵的乘方:^:要求为方阵例:A^2↙多元数组的乘、除法:.*;.\;./;例:C.*3↙C./2↙%矩阵C的每个元素与常数相乘除;多元数组的乘方:.^例:C.^3↙%计算C的第个元素的立方。矩阵(多元数组)元素的选取单下标A(m)或双下标A(i,j)A([13],[24])矩阵(多元数组)的排序sort(A,1):按列方向排序;sort(A,2):按行方向排序矩阵(多元数组)大小的检测size(A):显示行数与列数矩阵(多元数组)的求和sum(a,1):按列方向求和;sum(a,2):按行方向求和;矩阵与线性代数矩阵的行列式:det(A)矩阵的逆:inv(A),其中A的行列式不为0矩阵的转置:A’矩阵的特征值与特征向量:[v,d]=eig(A):线性方程组的解:A\b:A:系数矩阵;b:常数列向量3.3简单数理统计算术平均值mean(a)或mean(a,1)或mean(a,2):a是向量或矩阵MATLAB数学软件第8页共14页方差var(a):a是向量或矩阵标准差std(a):a是向量或矩阵4符号运算4.1符号变量、表达式的定义符号变量的定义sym(‘a’)↙sym(‘a*x+b’)↙%用sym直接定义符号表达式;symsxyzt…↙%用syms函数定义多个符号变量符号表达式输入symsx↙y=f(x)↙或sym(‘f(x)’)4.2符号表达式的操作四则运算使用通常运算符:+-*/\化简simplify(S)合并同类项collect(S,v)因式分解factor(S):S为符号表达式则进行因式分解,S为常数则进行因子分解替换求值MATLAB数学软件第9页共14页subs(S,’v’,a)%用数值a的值替换表达式中指定变量v;subs(S,’v’,’t’)%用新变量t替换表达式中指定变量v。4.3微积分运算极限limit(S,’v’,a,’right’或’left’)微分diff(S,’v’,n)积分int(S,’v’,lb,ub)4.4方程求解运算一般方程(组)solve(‘eq’,’v’)[v1,v2,…,vn]=solve(‘eq1’,’eq2’,…,’eqn’,’v1,v2,…,vn’)线性方程组linsolve(A,b):A为系数矩阵,b为常数列向量微分方程(组)'y:Dy;''y:D2y;)(ny:Dny;求通解dsolve(‘deq’,’v’)或dsolve(‘deq1,deq2,…,deqn’,’v1,v2,…,vn’)求特解dsolve(‘deq1,deq2,…,deqn’,’y(x0)=y0,Dy(x0)=y1,D2y(x0)=y2,…’,’v1,v2,…,vn’,)5简单作图MATLAB数学软件第10页共14页5.1二维曲线plot(X,Y)5.2三维曲线plot3(X,Y,Z)5.3多个图形subplot(m,n,k),1=k=m*n5.4特殊图形饼形图pie(Y);pie(Y,[EXPLODE]),EXPLODE:为要突出显示的数据向量条形图bar(Y):默认横坐标为自然数;bar(X,Y):X为自定义横坐标曲线拟合polyfit(X,Y,N):多项式拟合,X,Y为原始数据,N为拟合多项式的次数6程序设计6.1M文件介绍脚本文件命令集合文件,批量执行函数文件第一行以字句:function开头(7.0以上版本取消)6.2控制结构顺序结构选择结构单个选择MATLAB数学软件第11页共14页if条件表达式执行语句end两个选择if条件表达式1执行语句1else条件表达式2执行语句2end多个选择if条件表达式1执行语句1elseif条件表达式2执行语句2elseif条件表达式2执行语句3…else条件表达式n执行语句nend循环结构for循环适合循环次数确定的情况for循环变量=初值:步长:终值循环体endwhile循环适合循环次数不确定的情况MATLAB数学软件第12页共14页while条件表达式循环体end注意:while循环容易出现死循环,使用时一定要注意.若出现死循环,则按键盘:Ctrl+C强制结束程序.提示:与各种编程语言一样,各种结构之间可以互相嵌套使用.7数据拟合与插值7.1多项式最小二乘法拟合polyfit(X,Y,N):X,Y为原始数据,N为拟合的阶数(次数)7.2一维线性插值Y0=interp1(X,Y,X0):用于计算插值X0处的函数值,若省略X,则默认为自然数1-length(Y).Y0=interp1(X,Y,X0,‘methord’):使用‘methord’参数指定插值方法,‘methord’可选为:'nearest'-线性最近项插值'linear'-线性插值'spline'-3次样条插值'pchip'-3次Hermite插值'cubic'-立方插值7.3lagrange插值Y0=Lagrange(X,Y,x0),用法与interp1类似.7.4三次样条插值YY=spline(X,Y,XX):计算插值点向量XX的三次样条插值多项式所对应的值.MATLAB数学软件第13页共14页8规划问题求解符号说明:f:目标函数中的方程的系数矩阵A:不等式约束中的系数矩阵b:不等式约束中的常数列向量Aeq:等式约束中的系数矩阵beq:等式约束中的常数列向量lb:决策变量的下界ub:决策变量的上界X0:初值(可省)opti:优化选项(可省)8.1线性规则标准模型:ubXlbbeqAeqXbAXtsXf..'min命令:[X,fval]=linprog(f,A,b,Aeq,beq,lb,ub,X0,opti)例:求解如下线性规则问题3,2,1,030234242320..645min21321321321ixxxxxxxxxtsxxxi代码:f=[-5;-4;-6];A=[1-11;324;320];b=[20;42;30];Lb=zeros(3,1);[x,fval]=linprog(f,A,b,[],[],lb)8.2大规模二次规划MATLAB数学软件第14页共14页标准模型:ubXlbbeqAeqXBAXtsXfHXXQ..''21min命令:[X,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,X0,opti)例1