【数学建模】数学建模课程总复习

一.MATLAB的使用及编程

1.填空知识点总结

(1)MATLAB中标点符号的含义:

  • MATLAB每条命令后有逗号无标点符号 —— 显示命令的结果
  • MATLAB每条命令后为分号 —— 禁止显示命令结果
  • % —— 所有文字为注释
  • … —— 续行符

(2)数组的建立

  • x = [ a b c d e ] —— 创建包含指定元素的行向量
  • x = first:last —— 创建从first开始,加1计数,到last结束的行向量
  • x = first:increment:last —— 从first开始,加increment计数,到last结束的行向量
  • linspace(first,last,n) —— 从first开始,到last结束,有n个元素的行向量

(3)特殊的矩阵命令

  • a = [ ] —— 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵大小为0
  • b = zero(m,n) —— 产生一个m行n列的零矩阵
  • c = ones(m,n) —— 产生一个m行n列的元素全为1的矩阵
  • d = eye(m,n) —— 产生一个m行n列单位矩阵

(4)矩阵中元素的操作及运算

  • A(i,:) —— 矩阵A的第i行
  • A(:,j) —— 矩阵A 的第j列
  • A( : ) —— 依次提取矩阵A的每一列,拉伸为一个列向量
  • A(i1:i2,j1:j2) —— 取矩阵A的第i1-i2行、第j1-j2列构成新的矩阵
  • A(i2: -1:i1,:) —— 依次提取矩阵的i1-i2行构成新矩阵
  • A(:,j2: -1:j1) —— 依次提取矩阵的j1-j2列构成新矩阵
  • A(i1:i2,:)=[ ] —— 删除矩阵的i1-i2行构成新矩阵
  • A(:,j1:j2)=[ ] —— 删除矩阵的j1-j2列构成新矩阵
  • [A B] or [A;B] —— 拼接矩阵A和B构成新矩阵
  • A+B —— 矩阵的加法
  • A*B ——矩阵的乘法
  • det(A) —— 方阵的行列式
  • inv(A) —— 方阵的逆
  • [V,D] = eig(A) ——方阵的特征值与特征向量

(5)常用的画图函数

  • plot(x,y) —— 绘制x关于y的曲线图
  • ezplot(f) or fplot(f) —— 符号函数画图
  • polar(theta,rho,S) —— 用角度theta和极半径rho作极坐标图,用S指定线型。
  • plot3(x,y,z,S) —— 画三维曲线
  • surf(X,Y,Z) —— 空间曲面
  • mesh(X,Y,Z) —— 网格曲面

(6)处理图形

  • gird on/off —— 增加/删除格栅
  • xlabel() —— x轴标签
  • ylabel() —— y轴标签
  • title() —— 顶端标题
  • gtext() —— 标注
  • hold on/off 保持/关闭图像

(7)练习1:写出用linespace函数创建等间隔行向量设x=1:2:20的语句:x=linespace(1:19:10)

(8)练习2:设x=1:2:20写出以下表达式的值:
①x(1:3)的值为:[1,3,5]
②x(end-2:end)的值为:[15,17,19]
③length(x)的值为:10
④mean(x)的值为:10

(9)在matlab中输入以下语句:

>> clear;
x=1:2:20;
x(100)=100;
y=sum(x);
disp(y)

(1)执行以上程序后,x是长度为100的行向量
(2)执行以上程序后,y的值是200
注:y=((1+19)x10)/2+100=100+100=200

(10)设A=[1,2,3,4;5,6,7,8;9,10,11,12],写出以下表达式的值:
①A(end,:)的值为[9,10,11,12]
②A(:,[3,4])的值为[3,4;7,8;11,12]
③A(1,4)的值为4
④A(4)的值为2
注:对于A(i)来说,二维数组按列存取
⑤size(A)的值为[3,4]
注:size就是矩阵的行列大小
⑥sum(A)的值为[15,18,21,24]
注:sum和是将列进行加法计算存储在一个新的行向量里
⑦执行[m,n]=size(A)后,m=3,n=4

(11)设C={‘one’,‘two’,‘three’;zero(3),ones(2),eye(3)}
①size( C )的值为[2,3]
②C{1,1}的值为’one’
③length(C{1,1})的值为3
④C{2,2}的值为[1,1;1,1]
⑤C{2,3}的值为[1,0,0;0,1,0;0,0,1]

2.编程例题及练习题总结

例1.用for循环,对n=1,2,…,10,分别求xn=sin(nπ/10)

for n=1:10
    x(n)=sin(n*pi
1. 记时刻 的人口为 ,已知0时刻的人口为 ,假设人口增长率随着人口数量的增加而线性下降,即从 到 人口的增量与 成正比。建立人口增长模型,求解并作出解的大致图形。(具体解答见书上P12) 解为 ,大致图形如下: 2. 试在matlab中编程,用以下美国人口数据拟合人口增长模型: ,确定其待定参数 和 。 年 份 1790 1800 1810 1820 1830 1840 1850 人口(×106) 3.9 5.3 7.2 9.6 12.9 17.1 23.2 年 份 1860 1870 1880 1890 1900 1910 1920 人口(×106) 31.4 38.6 50.2 62.9 76.0 92.0 106.5 年 份 1930 1940 1950 1960 1970 1980 人口(×106) 123.2 131.7 150.7 179.3 204.0 226.5 Matlab常用函数名称列表:interp1、polyfit、polyval、fzero、fsolve、fminbnd、fminsearch、fmincon、lsqcurvefit、ode45、limit、diff、int。 解答: 1)先定义一个函数文件myfun.m: function f=myfun(a,t) f=exp(a(1)*t+a(2)); 2)然后在命令行输入以下命令: x=1790:10:1990; y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4]; a0=[0.001,1]; % 初值 a=lsqcurvefit('myfun',a0,x,y); 得到 =exp(a(2)), =a(1)。 3. P79习题2:建立不允许缺货的生产销售存贮模型。生产速率为常数 ,销售速率为常数 , 。在每个生产周期 内,开始一段时间( )一边生产一边销售,后来一段时间( )只销售不生产,画出贮存量 的图形。每次生产准备费为 , 每天每件产品贮存费为 ;并以费用最小为目标确定最优生产周期。讨论 和 的情况。 解答: 的图形如右。 一个周期内的存贮费 乘于图中三角形的面积, 再加上生产准备费 ,得到一周期的费用为: 而 ,既有 ,故上式为: 。 故单位时间费用为: 。 利用微分法求 使 最小。使 达到最小值的最优周期为: 。 当k>>r时, ,相当于不考虑生产的情况.当k  r时 ,因为产量被销量抵消,无法形成贮存量。 4. 解书本上P130的习题1。某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如下表1所示,按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税,此外还有以下限制: 1)政府及代办机构的证券共至少要购进400万元; 2)所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程序越高); 3)所购证券的平均到期年限不超过5年。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值