数学建模-MATLAB-暑期培训资料

合集下载

(2024年)数学建模培训Matlabppt课件

(2024年)数学建模培训Matlabppt课件

2024/3/26
29
THANKS FOR WATCHING
感谢您的观看
2024/3/26
30
图形编辑与美化
Matlab的图形编辑功能强大,可 以对图形进行各种编辑操作,如 添加标题、轴标签、图例等,同 时还可以对图形的颜色、线型、
字体等进行美化。
2024/3/26
23
数值计算与优化功能
线性方程组求解
利用Matlab的数值计算功能,可以高效地求解线性方程组,为数学 建模中的数据处理提供了便利。
符号微分与积分
Matlab提供了强大的符号微分与积分功能,可以对符号表达式进 行求导、积分等操作,为数学建模提供了有力的工具。
22
图形可视化功能
二维图形绘制
利用Matlab的绘图函数,可以轻 松地绘制出各种二维图形,如折 线图、散点图、柱状图等,满足
数学建模中的图形展示需求。
三维图形绘制
Matlab支持三维图形的绘制,可 以创建三维曲面、散点图等,为 复杂数据的可视化提供了可能。
12
非线性规划模型
1 2
非线性规划基本概念
目标函数、约束条件、可行域、局部最优解、全 局最优解等。
Matlab实现非线性规划
使用`fmincon`函数求解非线性规划问题,包括 输入参数设置、输出结果解读等。
3
非线性规划应用案例
经济模型、金融投资、最优控制问题等。
2024/3/26
13
整数规划模型
2024/3/26
26
数学建模竞赛简介
数学建模竞赛是一种基于数学方法解决实际问题的竞 赛形式,旨在培养参赛者的数学素养、创新能力和团
队协作精神。
常见的数学建模竞赛包括全国大学生数学建模竞赛、 美国大学生数学建模竞赛(MCM/ICM)等,吸引了

【大学课件】Matlab暑假辅导

【大学课件】Matlab暑假辅导
发帖水王
• 传说,小天鹅BBS有一大“水王”,他不但 喜欢发帖,还会回复其他ID发的每个帖子。 坊间风闻该“水王”发帖数目超过了帖子 总数的一半。
• 如果你有一个当前论坛上所有帖子(包括 回帖)的列表,其中帖子作者的ID也在表中, 你能快速找出这个传说中的小天鹅水王吗?
阶乘N!末尾有多少个0?
• 阶乘(Factorial)是一个很有意思的函数, 但是不少人都比较怕它。
高效率地安排见面会
• 学生会招募新成员,为了让新生了解各个 部的情况,学生会计划为每个部举办一次 见面会,让新生能够了解感兴趣的部。
• 已知有n位新生,他们分别对m个部的若干 个感兴趣。学生会希望每个新生都能参加 自己感兴趣的所有见面会。如果每个见面 会的时间为t,如何安排才能够使得所有见 面会的总时间最短?
• 一个有N个整数元素的一维数组 (A[0],A[1],…,A[n-2],A[n-1]),这个数组当 然有很多子数组,那么子数组之和的最大 值是多少?
• 数组:[1,-2,3,5,-3,2]应返回8 • 数组:[0,-2,3,5,-1,2]应返回9 • 数组:[-9,-2,-3,-5,-3]应返回-2
• 给定一个整数N,那么N的阶乘N!末尾有多 少个0呢?
• 例如,N=10,N!=3628800,N!的末尾有两 个0。
寻找和为给定值的两个数
• 能否快速找出一个数组中的两个数字,让 这两个数字之和等于一个给定的数字。
• 为了简化起见,我们假设这个数组中肯定 存在至少一组符合要求的解。
子数组之和的最大值
点是否在三角形内
• 如果在一个二维坐标系中,已知三角形三 个点的坐标,那么对于坐标系中的任意一 点,如何判断该点是否在三角形内(点在 三角形边线上也认为在三角形内)?

Matlab建模培训讲义

Matlab建模培训讲义

2z 例15 求 F ( x, y, z ) 0, z f ( x , y ) 的导 x 2 function w=sanyuanfcpd(p);
syms x y z; dx=diff(p,x);dy=diff(p,y);dz=diff(p,z);pdzx=-dx/dz; dxx=diff(dx,x);dyx=diff(dy,x);dxy=diff(dx,y);dyy=diff(dy,y); dzz=diff(dz,z);dzx=diff(dz,x);dxz=diff(dx,z); pdxx=-((dxx*dz-dzx*dx)/dz^2+((dxz*dz-dzz*dx)/dz^2)*pdzx); [m,n]=numden(simplify(pdxx)); pretty(simple(expand(m/n)));
clc clear x=linspace(0,2*pi,30); y1=sin(x); y2=cos(x); plot(x, y1, x, y2)
例2
clc clear x=linspace(0,2*pi,30); y1=sin(x); y2=cos(x); plot(x,y1,'*',x,y2,':o')
5 函

5.1.
例1
常用的数学函数
clc clear a=[0 pi 2*pi ;5 6 7;8 9 10]; sin(a)
常用的数学函数主要有 asin, cos ,tan ,cot ,exp, log, log10, log2, sqrt, abs
5.2 数组特征及矩阵操作函数
常用的函数主要有
x y 例14 求 F ( , ) 0, , z f ( x , y ) 的导 z z z x

数学建模培训-matlab基础讲义

数学建模培训-matlab基础讲义

4 工作空间窗口---workspace
• 列出在内存中Matlab的所有变量的: NAME,VALUE,SIZE等 • 帮助编写程序,调试程序; 注意:工作空间中的变量,当关闭MATLAB软件是不 会自动保存,再打开软件变量消失,应及时保存你 下次需要的数据,保存到mat文件中,可以以后调 用.

3.2.1 数字

Numbers
Matlab 中的数字采用十进制

默认的显示格式:format short(一般小数点后保
留四位 )

format 可以修改数值的显示格式
MATLAB命令
format short format short e format long format long e format rat
2.2 运行m文件 直接在主命令窗口输入此文件名即可; 按编辑窗口工具栏中的“run”按钮; 快捷键:F5. 运行的结果出图形外,均在“命令窗口”显示. 终止运行:Ctrl+C 注:M文件的命名:英文.
3 命令历史窗口---command history window
• 列出在命令窗口中执行过的命令; • 双击命令行,可以重新运行该命令;

注:函数调用时必须带小括号.
常用的数学函数
类型 函 数 含 义
三角函数
sin(x)
asin(x) cos(x) acos(x) tan(x)
正弦值
反正弦值 余弦值 反余弦值 正切 指数运算 自然对数 求平方根 求绝对值
指数函数
exp(x) log(x) sqrt(x)
复数函数
abs(x)
imag(x)


3.1 数据的结构和类型
Matlab基本数据的结构是矩阵。 特别,标量(常量)可以看成1∗1的矩阵, 向量看成1∗n的矩阵(列向量)。

数学建模暑期培训课件(陈传军)matlab

数学建模暑期培训课件(陈传军)matlab

烟台大学数学建模暑期培训陈传军2010.7.12第一部分MATLAB 入门1.MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题. 2.MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。

3.矩阵是MA TLAB的核心4.MATLAB的进入与运行方式(两种)一、变量与函数1、变量————不需要定义MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.特殊变量表2、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释.(3)“...”表示续行.点乘:矩阵与矩阵,向量与向量。

3、数学函数二、数组与矩阵1. 数组1、创建简单的数组x=[a b c d e f ]创建包含指定元素的行向量x=first:last创建从first开始,加1计数,到last结束的行向量x=first:increment:last创建从first开始,加increment计数,last结束的行向量x=linspace(first,last,n)创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n)创建从first开始,到last结束,有n个元素的对数分隔行向量.2、数组元素的访问(1)访问一个元素:x(i)表示访问数组x的第i个元素.(2)访问一块元素:x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.(3)直接使用元素编址序号. x([a b c d]) 表示提取数组x的第a、b、c、d个元素构成一个新的数组[x(a) x(b) x(c) x(d)].3、数组的方向前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示.产生列向量有两种方法:直接产生例c=[1;2;3;4]转置产生例b=[1 2 3 4]; c=b‟说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.4、数组的运算(1)标量-数组运算数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算.设:a=[a1,a2,…,an], c=标量则:a+c=[a1+c,a2+c,…,an+c]a.*c=[a1*c,a2*c,…,an*c]a./c= [a1/c,a2/c,…,an/c](右除)a.\c= [c/a1,c/a2,…,c/an] (左除)a.^c= [a1^c,a2^c,…,an^c]c.^a= [c^a1,c^a2,…,c^an]当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.设:a=[a1,a2,…,an], b=[b1,b2,…,bn]则:a+b= [a1+b1,a2+b2,…,an+bn]a.*b= [a1*b1,a2*b2,…,an*bn]a./b= [a1/b1,a2/b2,…,an/bn]a.\b=[b1/a1,b2/a2,…,bn/an]a.^b=[a1^b1,a2^b2,…,an^bn]2. 矩阵1、矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列.例m=[1 2 3 4 ;5 6 7 8;9 10 11 12]p=[1 1 1 12 2 2 23 3 3 3]特殊矩阵的建立:a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.b=zeros(m,n) 产生一个m行、n列的零矩阵c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵d=eye(m,n) 产生一个m行、n列的单位矩阵2、矩阵中元素的操作(1)矩阵A的第r行:A(r,:)(2)矩阵A的第r列:A(:,r)(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)(4)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2, j1:j2)(5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:)(6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:, j2:-1:j1)(7)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[ ](8)删除A的第j1~j2列,构成新矩阵:A(:,j1:j2)=[ ](9)将矩阵A和B拼接成新矩阵:[A B];[A;B]3、矩阵的运算同标量-数组运算。

数学建模培训——Matlab ppt课件

数学建模培训——Matlab  ppt课件
用作数值表示中的小数点 用作不显示计算结果指令的“结尾”标志;用作不显示计算结果指令与其后 指令的分隔;用作数组的行间分隔符; 用以生成一维数组;用作单下标援引时,表示全部元素构成的长列;用作多 下标援引时,表示那维上的全部 由它“启首”后的所有物理行部分被看作非执行的注释 字符串记述符 在数组援引时用;函数指令输入宗量列表时用 输入数组时用;函数指令输出宗量列表时用 元胞数组记述符 (为使人易读)用作一个变量、函数或文件名中的连字符 由三个以上连续黑点构成。它把其下的物理行看作该行的“逻辑”继续,以 构成一个“较长”的完整指令 放在函数名前,形成函数句柄;放在目录名前,形成用户对象类目录 ppt课件
2001年,推出MATLAB6.1 (克服6.0不支持P4,Win me,汉字等)。
2002年,推出MATLAB6.5R13(速度更快、性能更优越等)。
2004年,推出MATLAB7版本R14 2006年,推出MATLAB R2006a、 R2006b版本, 每年2个版本 2017年,9月14日正式推出MATLAB R201AB主要操作有:
运行函数和输入变量;控制输入和输出;执行程序, 包括M文件和外部程序。 MATLAB在命令窗口中的语句形式为: >>变量=表达式;
命令窗口中可直 接运行MATLAB 函数,而这些函 数往往又和 MATLAB命令直 接联系。
ppt课件
运行函数和键入变量
ppt课件
1.1 MATLAB简介-特点
1、运算功能强大 2、人机界面友好,编程效率高 是一个 3、强大而简易的作图功能
4、强劲的工具箱
5、动态仿真功能
强大的 功能演 算性草 稿纸
难点:函数较多,仅基本部分就有700多个。
ppt课件

数学建模竞赛培训之编程MATLAB实用教程

设a,b为同维向量,则c=a+b 或c=a-b得到两个向量 相加减的结果。
向量与常数的相加减为每个元素加减这个常数。
例如:
b=a+2
得到
b= 3 4 5 6 7 8 11 10 9 c=a+b
c= 4 6 8 10 12 14 20 18 16
8
(3)向量的乘除运算
a. 向量的乘法运算
点积运算的运算符为 .*, 其意义为两个向量的对 应元素进行乘法运算,例如
数,此时,多项式系数以降幂形式排列。 p = poly(E) p=
1.0000 -5.0000 -2.0000
16
其他特殊矩阵的生成方法: 1)、eye (m,n)或eye (m) 产生m*n 或 m*m的单位
矩阵。例如: eye (3,4)与eye (3)分别产生如下矩阵:
1000
100
0100
[ cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f)]
[ sin(l),
r*cos(l),
0
]
28
2.积分:用函数int来求符号表达式的积分。命令格 式为: int (f, r, x0, x1)其中f为所要积分的表达式,r 为积分变量,若为定积分,则x0,x1为积分上下 限。例: sym x; sym k real f=exp(-(k*x)^2) f= exp(-k^2*x^2) int(f,x,-inf,inf) ans = signum(k)/k*pi^(1/2)
27
3)、可用函数jacobian来计算Jacobi矩阵。 syms r l f x=r*cos(l)*cos(f); y=r*cos(l)*sin(f); z=r*sin(l); J=jacobian([x;y;z],[r l f])

数模培训—matlab2


5.2 函数调用 函数调用的一般格式是: [输出实参表]=函数名(输入实参表) 要注意的是,函数调用时各实参出现 的顺序、个数,应与函数定义时形参 的顺序、个数一致,否则会出错。函 数调用时,先将实参传递给相应的形 参,从而实现参数传递,然后再执行 函数的功能。
例3-15 利用函数文件,实现直角坐标(x,y)与极坐 标(ρ,θ)之间的转换。 函数文件tran.m: function [rho,theta]=tran(x,y) rho=sqrt(x*x+y*y); theta=atan(y/x); 调用tran.m的命令文件main1.m: x=input('Please input x=:'); y=input('Please input y=:'); [rho,the]=tran(x,y); rho the 在MATLAB中,函数可以嵌套调用,即一个函数 可以调用别的函数,甚至调用它自身。一个函数 调用它自身称为函数的递归调用。
运行: 请输入三角形的三条边:[4 5 6] 9.9216
6
2014-7-20
例: 设计并编写一个程序,用来求解一元二次方程的根。
disp ('This program solves for the roots of a quadratic '); disp ('equation of the form A*X^2 + B*X + C = 0.'); a = input('Enter the coefficient A: '); b = input('Enter the coefficient B: '); c = input('Enter the coefficient C: '); % Calculate discriminant discriminant = b^2 - 4 * a * c; if discriminant > 0 % there are two real roots, so ... x1 = (-b + sqrt(discriminant)) / (2*a); x2 = (-b - sqrt(discriminant)) / (2*a);

数学建模MATLAB培训2


模再型编设写在一t=个0时脚刻本缉M私文艇发件现走 Y
私c船lea,r 走私船以速度a平行于Y轴
正ts向=0行:0驶.05,:0缉.5私; 艇按速度b以指
向x走0=私[0船0]的'; 方向行驶(b>a),在任
Q(c, at)
意[时t x刻]=otd缉e45私(@艇ji位si,于ts,点x0P);(x,y),则 M文件以ex4t1作为文件
0.3500 12.8170 4.5552 15.0000 7.0000
0.4000 13.9806 6.1773 15.0000 8.0000
0.4500 14.7451 8.0273 15.0000 9.0000
0.5000 15.0046 9.9979 15.0000 10.0000
3、数据拟合、polyfit、人口预报.
v=[x(:,2);y(2:end,2)];
%速度函数
L=length(h);dt=(T+12)/(L-1);
%用三点公式求加速度
ac(1)=(-3*v(1)+4*v(2)-v(3))/2/dt;
%起始点加速度
for k=2:L-1
ac(k)=(v(k+1)-v(k-1))/2/dt;
%中间点加速度
设置的搜索路径,然后在解方程的脚本文件中调用:
[t, x]=ode23(@f,ts,x0,options) 或
ts=[a, b]表示自变量的 初值到终值的区间
[t, x]=ode45('f',tspan,x0,options) 或ts=[t0,t1,t2,…tf]
options用于设置误差限(缺省时相对误差为10-3,绝对误差 为10-6),用语句实现为:

数学建模MATLAB培训(5)

MATLAB 培训教材
第五讲 优化问题 一、线性规划 1.线性规划问题的标准型 一般线性规划问题的标准型如下: min Z= s.t i=1,2,……m MATLAB 中解决的线性规划问题的详细标准形式为: min cTx s.t 其中 c,x,b,beg,lb,ub 为向量,A,Aeq 为矩阵 2.linprog 函数 10.[x,fval]=linprog(f,A,b);求解如下线性规划问题 min cTx s.t 同时返回解 x 处的目标函数值 20. [x,fval]=linprog (f,A,b,Aeq,beg)求解如下线性规划问题: min cTx s.t 30. [x,fval]=linprog(f,A,b,Aeq,beg,lb,ub); 求解: min cTx s.t 40. [……]=linprog(f,A,b,Aeq,beg,lb,ub,x0,options); 可设置初值 x0,和指定优化参数进行最小化求解。设置参数的命令形式为: options=optimset(‘param1’,value1,’param2’,value2,…) 参数 设置 Diagnostics 是否显示一些退出信息。On 或 off(默认) Display off 不显示输出信息;iter 显示每一步迭代结果;final 显示最终结果 Simplex on 采用单纯形算法求解 LargeScale on(默认)使用大型规模算法;off 使用中型规模算法 MaxIter 算法运行中的最大迭代次数。大型规模算法默认 85 TolFun 计算终止的误差限。大型规模算法默认 1×10^(-8) 0 5 . [x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beg,lb,ub,x0,options); 输出参数 取值 意义 1 已经收敛到解 x 0 已经达到最大迭代次数限制 options. MaxIter -2 没有找到问题的可行解 exitflag -3 问题无有限最优解 -4 在算法执行过程中遇到了 NaN 值 -5 原线性规划问题和其对偶问题均不可行
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学建模暑期培训-MATLAB软件庄思发1熟悉软件操作界面1.1命令窗口MATLAB执行命令的主窗口,命令于提示符“>>”之后输入,回车确认执行;1.2命令历史窗口显示用户过去所使用过全部命令,可双击后重新执行,避免重新输入命令,或使用上、下方向键调出修改后再重新执行;1.3工作空间窗口显示当前MATLAB在计算机内存中存在的变量、数据等详细信息,以便用户查看,可删除其中若干个或全部删除;1.4当前工作目录窗口显示用户当前工作时所处在的目录位置,该目录是用户存放及打开文件时MATLAB指向的默认目录,可通过其目录选择器重新指向新用户目录;在该窗口中可以观察到当前目录中所有文件的详细情况,可以直接选定某人文件,通过单击右键运行或打开该文件进行编辑。

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 相同;rem(x,y):余数符号与x相同.舍入函数fix(x):与零最接近的整数;floor(x):不大于x的整数;ceil(x):不小于x的整数.求模(绝对值)abs(x)3数值运算3.1向量运算向量(数组)表示元素用中括号括起,元素间用逗号或空格或分号隔开;例:>>a=[2 4 6 7 8]↙>>b=[1;4;7;9]↙等差向量冒号生成法初值:步长:终值;例:>>c=1:10;↙>>d=1:0.5:10↙linspace(初值,终值,分段数)例:>>e=linspace(1,10,10)↙>>linspace(0,10,6)↙ 向量(数组)运算向量(数组)与常数的加、减例:>>a=[2 3 5]↙>>a+3,a-2↙向量(数组)与常数的乘、除例:>>a*2,a/3↙向量与向量的加、减法:元素个数必须相同例:>>a=[1 3 5],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([1 3 7])↙%选取向量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 的元素总和向量与多项式表示:n n n a x a x a x p +++=- 110)(:],,,[10n a a a p =(降幂排列)例:323)(341+++=x x x x p ,12)(232++=x x x p ,则该多项式在MATLAB 中可如下表示>>p1=[1 3 0 2 3],p2=[0 1 2 0 1]↙多项式相加、减:向量的相加、减(注意补零)例:>>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=[1 6 5;3 9 4;8 6 2]↙特殊矩阵全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↙矩阵与矩阵的加、减法:形状大小必须相同例:>>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([1 3],[2 4])矩阵(多元数组)的排序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是向量或矩阵方差var(a):a是向量或矩阵标准差std(a) :a是向量或矩阵4符号运算4.1符号变量、表达式的定义符号变量的定义>>sym(…a‟)↙>>sym(…a*x+b‟)↙%用sym直接定义符号表达式;>>syms x y z t …↙ %用syms函数定义多个符号变量符号表达式输入>>syms x↙>>y=f(x)↙或>>sym(…f(x)‟)4.2符号表达式的操作四则运算使用通常运算符:+-*/\化简>>simplify(S)合并同类项>>collect(S,v)因式分解factor(S):S为符号表达式则进行因式分解,S为常数则进行因子分解替换求值>>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:Dny;'y:Dy;''y:D2y;)(n求通解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简单作图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控制结构顺序结构选择结构单个选择if 条件表达式执行语句end两个选择if条件表达式1执行语句1else条件表达式2执行语句2end多个选择if 条件表达式1执行语句1elseif条件表达式2执行语句2elseif 条件表达式2执行语句3…else 条件表达式n执行语句nend循环结构for循环适合循环次数确定的情况for 循环变量=初值:步长:终值循环体endwhile循环适合循环次数不确定的情况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的三次样条插值多项式所对应的值.8 规划问题求解符号说明:f :目标函数中的方程的系数矩阵A :不等式约束中的系数矩阵b :不等式约束中的常数列向量Aeq :等式约束中的系数矩阵beq :等式约束中的常数列向量lb :决策变量的下界ub :决策变量的上界X0:初值(可省)opti :优化选项(可省)8.1 线性规则标准模型:⎪⎩⎪⎨⎧≤≤=≤ub X lb beqAeqX b AX t s Xf ..' min 命令:[X,fval]=linprog(f,A,b,Aeq,beq,lb,ub,X0,opti) 例:求解如下线性规则问题⎪⎪⎩⎪⎪⎨⎧=≥≤+≤++≤+----3,2,1,030234242320..645 min 21321321321i x x x x x x x x x t s x x x i 代码: f=[-5;-4;-6];A=[1 -1 1;3 2 4;3 2 0];b=[20;42;30];Lb=zeros(3,1);[x,fval]=linprog(f,A,b,[],[],lb)8.2 大规模二次规划标准模型:⎪⎩⎪⎨⎧≤≤≤≤+=ub X lb beqAeqX B AX t s X f HX X Q ..''21 min 命令:[X,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,X0,opti) 例1:求解如下二次规划问题⎪⎩⎪⎨⎧=≥≤+≤++-+2,1,0353220..4433 min 212112221i x x x x x t s x x x i代码: H=[6 0;0 6];f=[-4 0];A=[1 1;2 3];b=[20;35];lb=[0;0];[X,fval]=quadprog(H,f,A,b,[],[],lb,[])提示:规划问题中的常数与计算无关,因此可忽略.例2:求解如下二次规划问题⎪⎪⎩⎪⎪⎨⎧=≥≤+≤+-≤+---+2,1,032222..6221 min 21212121212221i x x x x x x x t s x x x x x x i 代码: H=[1 -1;-1 2];f=[-2;-6];A=[1 1;-1 2;2 1];b=[2;2;3];lb=zeros(2,1);[X,fval]=quadprog(H,f,A,b,[],[],lb)。

相关文档
最新文档