2015研究生数学建模MATLAB程序(完整版)

合集下载

matlab数学建模程序代码

matlab数学建模程序代码

matlab数学建模程序代码【实用版】目录1.MATLAB 数学建模概述2.MATLAB 数学建模程序代码的基本结构3.常用的 MATLAB 数学建模函数和命令4.MATLAB 数学建模程序代码的编写流程5.MATLAB 数学建模程序代码的示例正文一、MATLAB 数学建模概述MATLAB(Matrix Laboratory)是一款强大的数学软件,广泛应用于数学建模、数据分析、可视化等领域。

通过 MATLAB,用户可以方便地进行数学计算、编写程序以及绘制图表等。

在数学建模领域,MATLAB 为研究人员和工程师提供了丰富的工具箱和函数,使得数学模型的构建、求解和分析变得更加简单高效。

二、MATLAB 数学建模程序代码的基本结构MATLAB 数学建模程序代码通常分为以下几个部分:1.导入 MATLAB 库:在建模过程中,可能需要使用 MATLAB 提供的某些库或工具箱,需要在代码开头进行导入。

2.定义变量和参数:在建模过程中,需要定义一些变量和参数,用于表示模型中的各个要素。

3.建立数学模型:根据实际问题,编写相应的数学表达式或方程,构建数学模型。

4.求解模型:通过调用 MATLAB 内置函数或使用自定义函数,对数学模型进行求解。

5.分析结果:对求解结果进行分析,提取所需的信息,例如计算均值、方差等统计量。

6.可视化结果:使用 MATLAB 绘制图表,将结果以直观的形式展示出来。

三、常用的 MATLAB 数学建模函数和命令MATLAB 提供了丰富的数学建模函数和命令,例如:1.线性规划:使用`linprog`函数求解线性规划问题。

2.非线性规划:使用`fmincon`或`fsolve`函数求解非线性规划问题。

3.优化问题:使用`optimize`函数求解优化问题。

4.数据处理:使用`mean`、`std`等函数对数据进行统计分析。

5.图表绘制:使用`plot`、`scatter`等函数绘制各种图表。

实验一:MATLAB软件入门(2015版)

实验一:MATLAB软件入门(2015版)

实验一:MATLAB 软件入门一、 实验目的及意义[1] 熟悉MATLAB 软件的用户环境;[2] 了解MATLAB 软件的一般目的命令;[3] 掌握MATLAB 数组操作与运算函数;[4] 掌握MATLAB 软件的基本绘图命令;[5] 掌握MATLAB 语言的几种循环、条件和开关选择结构。

通过该实验的学习,使学生能灵活应用MATLAB 软件解决一些简单问题,能借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。

二、实验内容1.MATLAB 软件的数组操作及运算练习;2.直接使用MATLAB 软件进行作图练习;3.用MATLAB 语言编写命令M-文件和函数M-文件。

三、实验步骤1. 在D 盘建立一个自己的文件夹;2.开启软件平台——MATLAB ,将你建立的文件夹加入到MATLAB 的搜索路径中。

3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法。

4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件);5.保存文件(注意将文件存入你自己的文件夹)并运行;6.若出现错误,修改、运行直到输出正确结果;7.写出实验报告,并浅谈学习心得体会。

四、实验要求与任务根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→算法与编程→计算结果或图形→心得体会)1.设有分块矩阵⎥⎦⎤⎢⎣⎡=⨯⨯⨯⨯22322333S O R E A ,其中E,R,O,S 分别为单位阵、随机阵、零阵和对角阵,试通过数值计算验证⎥⎦⎤⎢⎣⎡+=22S 0RS R E A 。

2.某零售店有9种商品的单件进价(元)、售价(元)及一周的销量如表1.1,问哪种商品的利润最大,哪种商品的利润最小;按收入由小到大,列出所有商品及其收入;求这一周该10种商品的总收入和总利润。

数学建模MATLAB程序

数学建模MATLAB程序

function 为函数定义的关键字y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

矩阵是MATLAB最基本的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。

在MATLAB中,不需对矩阵的维数和类型进行说明,MATLAB 会根据用户所输入的内容自动进行配置。

1.建立矩阵建立矩阵可以用:直接输入法、利用函数建立矩阵和利用M文件建立矩阵。

直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

(也可以用回车键代替分号)利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。

例如:reshape函数和diag函数等。

reshape函数用于建立数值矩阵。

diag函数用于产生对角阵。

利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。

其步骤为:第一步:使用编辑程序输入文件内容。

第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。

第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。

利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。

其步骤为:第一步:使用编辑程序输入文件内容。

第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。

第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。

在MATLAB中,冒号是一个重要的运算符。

利用它可以产生向量,还可用来拆分矩阵。

冒号表达式的一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。

冒号表达式可产生一个由e1开始到e3结束,以步长e2自增的行向量。

建立矩阵的函数常用函数有:eye(size(A)) 产生与A矩阵同阶的单位矩阵zeros(m,n) 产生0矩阵ones(m,n) 产生幺矩阵rand (m,n) 产生随机元素的矩阵Size(a) 返回包含两个元素的向量。

数学建模02第二章Matlab语言基础-Matlab教程

数学建模02第二章Matlab语言基础-Matlab教程

8)关系与逻辑运算
1、关系操作符 关系操作符 < <= > >= == ~= 2、逻辑运算符 说明 小于 小于或等于 大于 大于或等于 等于 不等于
逻辑操作符
& ︱ ~
说明
Байду номын сангаас与 或 非
9)程序设计
Matlab有两种工作方式: 1)人机交互的命令行指令操作方式,即在命令窗口每输入一条命令,则立即运行 该命令得到结果。 2)进行控制流的程序设计,即编制一种可存储的以M为扩展名的文件(简称M文 件)。 在Matlab下执行该程序M文件分两种: (1)命令式M文件:也称脚本文件, 就是将Matlab的一系列命令按顺序编制成一 个文本文件,文件名后缀为M,然后在command window 下运行文件名,则 按顺序执行文件中的命令。 文件建立方法:1. 在Matlab中,点:File->New->M-file 2. 在编辑窗口中输入程序内容 3. 点:File->Save,输入文件名,后缀为M,存盘 例:建立命令式脚本文件qwe.m 在编辑窗口输入如下命令: a=1 b=2; %行尾加分号,注意运行结果。 c=a+b 然后存盘。在command window 下输入qwe.m并回车。
4、 switch-case结构 witch-case语句的一般表达式: Switch<选择判断量> case 选择判断值1 选择判断语句1 case 选择判断值2 选择判断语句2 … …. Otherwise 判断执行语句 End 例子: Switch code case -1 disp(‘error’) case 0 disp(‘write in English’) case 1 disp(‘write in Chinese’) Otherwise disp(‘write in French’) End

2015年全国研究生数学建模竞赛资料

2015年全国研究生数学建模竞赛资料

参赛密码第十二届“中关村青联杯”全国研究生数学建模竞赛学校西安工程大学参赛队号10709012队员姓名1.卞京红2.张茜3.张永强参赛密码第十二届“中关村青联杯”全国研究生数学建模竞赛题目:旅游路线规划问题摘要随着我国国民经济的快速发展,人们生活水平得到很大提升,越来越多的人积极参与有益于身心健康的旅游活动,其已逐步成为全球经济发展的重要动力之一。

本文针对旅游路线的规划问题,进行了多方面研究,设计了可行有效的旅游方案。

针对问题一,首先依据TSP优化理论,建立了数学模型,其次利用DIJKSTRA算法求得任意两省会之间的最短距离,运用LINGO编写程序进行模型求解,运用MATLAB编写程序。

在旅游费用不限的情况下,设计出了畅游全国5A级景区的较佳旅游路线,并得出最短旅游年限约为13年。

针对问题二,采用聚类分析的方法按省会城市的离散程度进行分类,借助MATLAB软件对数据进行处理,同时,假定以西安为中心,综合考虑飞机,高铁和自驾租车等交通方式,依据题中所给的各种费用和时间限定信息,设计出了每一天具体的出行方式、出发地、费用、路途时间、游览景区和每个景区的游览时间。

最终算出总费用为4.7193e+006元。

针对问题三,在第二问的基础上,以北京市为中心,以自驾为主,费用最低为目标,进行旅游线路设计,规划出了更适合十年旅游计划的自驾游爱好者的旅游路线;根据旅游景区的现状及旅游者的兴趣,提供了相应的建议,以便于旅游者更好的游玩,同时也方便相关部门为游客提供更好的服务。

针对问题四,根据5A级旅游景区的评定信息,结合周边的4A级景区,利用遗传算法,根据其离散程度对全国进行分区,共分为7个区域,分别为华北地区,东北地区,华东地区,华中地区,华南地区,西北地区,西南地区。

依据分区结果,更合理的安排旅游者的十年旅游计划。

关键字:旅游线路,MATLAB,DIJKSTRA算法,聚类分析,最优线路问题一、问题重述1、背景随着科技的进步和社会的发展,旅游已成为人们的一种生活方式,是提高人们生活质量的重要活动。

MATLAB R2015b数学建模 第2章 矩阵及其操作

MATLAB R2015b数学建模 第2章 矩阵及其操作
2.4.1 向量和矩阵的范数 2.4.2 矩阵的条件数 2.4.3化零矩阵 2.4.4 矩阵的秩 2.4.5 矩阵的行列式 2.4.6 矩阵的迹 2.4.7 矩阵的逆和伪逆 2.4.8 矩阵的正交空间 2.4.9 矩阵的约化行阶梯形式 2.4.10 矩阵空间的夹角
2.5 矩阵分解
2.5.1 特征值分解 1. 标准特征值与标准特征向量 2. 广义特征值与特征向量 3. 部分特征值
2.1 矩阵的创建
第2章 矩阵及其操作
1. 冒号创建一维矩阵 2. linspace创建一维矩阵 3. logspace创建一维矩阵
2.2矩阵的操作
2.2.1 矩阵的部分删除 2.2.2 矩阵元素的修改 2.2.3 矩阵结构的修改 2.2.4矩阵元素的数据变换
2.2.5 矩阵下标引用
1. 矩阵下标访问单个矩阵元素 2. 线性引用矩阵元素
2.3.1 矩阵的代数运算
1. 矩阵的算术运算 2. 矩阵的运算函数 3. 矩阵元素的群运算 4. 元素群的函数
2.3.2 矩阵的关系运算 2.3.3 矩阵的逻辑运算 2.3.4 矩阵的其他运算
1. 矩阵的查找 2. 元素的排序 3. 矩阵元素的累积和与累积积运算 4. 矩阵元素的差分
2.4 矩阵的分析
2.6.2 稀疏矩阵的操作
2.2.6 矩阵信息的获取
1. 矩阵结构 2. 矩阵大小 3. 矩阵的数据类型
2.3 矩阵运算
2.3.1 矩阵的代数运算
1. 矩阵的算术运算 2. 矩阵的运算函数 3. 矩阵元素的群运算 4. 元素群的函数
2.Байду номын сангаас.2 矩阵的关系运算 2.3.3 矩阵的逻辑运算
2.3.4 矩阵的其他运算
1. 矩阵的查找 2. 元素的排序 3. 矩阵元素的累积和与累积积运算 4. 矩阵元素的差分

数学建模MATLAB教程

数学建模MATLAB教程

Matlab 的 Simulink 动态仿真集成环境
提供建立系统模型、选择仿真参数和数值算法、启动仿 真程序对该系统进行仿真、设置不同的输出方式来观察 仿真结果等功能
8
Matlab 的基本用法
Matlab 系统的启动
使用 Windows “开始” 菜单
运行 Matlab 系统启动程序 matlab 双击 Matlab 快捷图标

Matlab 中数的输出格式可以通过 format 命令指定
format 只改变变量的输出格式, 但不会影响变量的值!
24
各种 format 格式
格式
format
format short format long format short e
解释
短格式(缺省显示格式),同short
短格式(缺省显示格式),只显示5位 长格式,双精度数15位,单精度数7位 短格式e方式(科学计数格式)
例:>> lookfor inverse
which 显示指定函数所在的目录
例:>> which eig
其它相关命令 cd、dir、more
17
Matlab 变量
变量命名原则
以字母开头 后面可以跟 字母、数字 和 下划线 长度不超过 63 个字符(6.5 版本以前为 19 个) 变量名 区分字母的 大小 写

3.1416
3.1416 3.14159265358979 3.1416e+000
format long e
format short g format long g format compact format loose
长格式e方式

数学建模matlab课件

数学建模matlab课件
2015/9/20
(1)if 语句(选择结构)
a.单分支if语句 如果条件成立,则执行 语句格式: if和end之间的语句组, if 条件 如果表达式为不成立, 语句组 则执行end之后的语句。 end 例2-7:建立m文件:输入一个数n,若该数小 于5,这输出n. clear n=input('enter a number,n='); if n<5 disp(n) 2015/9/20 end
2015/9/20
注意:矩阵里的元素从上 到下,从左到右开始排列。
(3)取出多个元素
例1-10 >> a3=A(1:2,2:3) a4=A(:,1:2) a5=A(2,1:2)
调用格式: 变量名=原矩(i:j,m:n)
(4)添加多个元素(行、列) 例1-11 在原矩阵下边添加一行 >> a6=[A;[1 2 3]] >> a8=[A [4;5;6]] a7=[A;7 8 9] a9=[A [7 8 9]']
b.双分支if语句 语句格式: if 条件 语句组1 else 语句组2 end 当条件成立时,执行语 句组1,否则执行语句组 2,语句组1或语句组2执 行后,再执行if语句的后 继语句。
2015/9/20
例2-8:建立m文件,计算当x=﹣4和x=4时
2 x 0; x 分段函数 y= 的值。 x x ≥0.
2.1.3运算符
+ * ^ 加 减 乘 乘方 == ~= 等于 不等于
>
>= < <=
大于
大于等于 小于 小于等于
/
\ .*
左除
右除 点乘
./或.\ 点除

matlab数学建模程序代码

matlab数学建模程序代码

matlab数学建模程序代码摘要:1.MATLAB 简介2.MATLAB 数学建模应用领域3.MATLAB 数学建模程序代码实例4.总结正文:一、MATLAB 简介MATLAB(Matrix Laboratory)是一款广泛应用于科学计算、数据分析和可视化的软件,尤其擅长矩阵运算。

自1984 年问世以来,MATLAB 已经成为了全球数百万工程师、科学家和研究人员的得力工具。

MATLAB 具有丰富的函数库和强大的编程能力,为用户提供了从数据获取、数据处理、数据分析到结果可视化等一站式解决方案。

二、MATLAB 数学建模应用领域MATLAB 在数学建模领域的应用非常广泛,涵盖了诸如优化、控制、信号处理、图像处理、概率论和统计等众多学科。

以下是一些典型的应用场景:1.优化问题求解:线性规划、整数规划、非线性规划等。

2.控制系统设计:线性时不变系统、线性时变系统、非线性系统等。

3.信号处理:滤波、信号生成、频域分析等。

4.图像处理:图像增强、图像分割、特征提取等。

5.概率论与统计:概率分布计算、假设检验、回归分析等。

三、MATLAB 数学建模程序代码实例下面以一个简单的线性规划问题为例,展示如何使用MATLAB 进行数学建模。

问题描述:给定如下线性规划问题:```maximize: c" * xsubject to: A * x <= b and x >= 0```其中,c"表示目标函数的系数向量,A 表示不等式约束矩阵,b 表示不等式约束向量,x 表示决策变量向量。

MATLAB 代码如下:```matlab% 定义参数c = [1, 2, 3]; % 目标函数系数向量A = [1, 0; 0, 2; 0, 1]; % 不等式约束矩阵b = [2; 4; 1]; % 不等式约束向量x = linprog(c, [], [], A, b); % 求解线性规划问题disp(x); % 输出最优解```运行上述代码,可以得到最优解x = [1.5; 2.5; 1]。

MATLAB R2015b数学建模 第1章 MATLAB与数学建模基础知识

MATLAB R2015b数学建模 第1章 MATLAB与数学建模基础知识

1.1.2 MATLAB的特点
作为一个强大的计算功能软件,MATLAB具有以下的特性: ● 用于数值计算、可视化和应用程序开发的高级语言; ● 可实现迭代式探查、设计及问题求解的交互式环境; ● 用于线性代数、统计、傅立叶分析、筛选、优化、数值积分以及常 微分方程求解的数学函数; ● 用于数据可视化的内置图形以及用于创建自定义绘图的工具; ● 用于改进代码质量和可维护性并最大限度地发挥性能的开发工具; ● 用于构建自定义图形界面应用程序的工具; ● 可实现基于 MATLAB 的算法与外部应用程序和语言(如 C、Java、 .NET 以及 Microsoft Excel)集成的函数。
1.2 MATLAB组成结构
MATLAB的工作界面主要由选项卡、命令窗口、历史命令窗口、当前 工作目录窗口和工作空间管理窗口组成
1.3 MATLAB计算基础
MATLAB语言也是一门计算语言,它的运算指令和语法基 于一系列基本的矩阵运算以及它们的扩展运算,还支持复数这一 数值元素,这也是MATLAB区别于其他高级语言的最大特点之一, 它给许多领域的计算带来了极大的方便。
1.1.1 MATLAB的发展史
为了提高MATLAB在数值算法、界面设计和外部接口等诸多 方面的功能,MathWorks公司在2000年10月底推出了MATLAB 6.0。2003年,MATLABR6.5采用最新的JIT加速技术,为 MATLAB程序提供了更快的执行速度。
在MATLAB6.5版本中,Simulink升级为5.0版本,该版本创 建出完整的嵌入式系统设计环境。开发者可以在单一的环境下 完成工程,同时还可以选择自动将算法及应用程序转换成C++等 程序代码。
第1章 MATLAB与数学建模基础知识

matlab数学建模程序代码

matlab数学建模程序代码

matlab数学建模程序代码摘要:1.引言2.Matlab数学建模简介3.Matlab数学建模程序代码实例a.线性规划模型b.非线性规划模型c.动态规划模型d.排队论模型e.图论模型f.神经网络模型4.结论正文:Matlab是一种广泛应用于科学计算和数据分析的编程语言。

在数学建模领域,Matlab也发挥着重要的作用。

本文将介绍Matlab数学建模的基本知识,并通过实例代码展示不同类型的数学建模问题的解决方法。

首先,我们需要了解Matlab数学建模的基本概念。

Matlab提供了一系列用于解决各种数学建模问题的工具箱和函数。

例如,线性规划(LP)、非线性规划(NLP)、动态规划(DP)、排队论(QT)、图论(GT)和神经网络(NN)等。

这些工具箱和函数可以帮助我们快速地构建和求解数学模型。

接下来,我们将通过实例代码展示如何使用Matlab解决不同类型的数学建模问题。

1.线性规划模型线性规划是一种常见的优化问题,它的基本形式可以表示为:$minimize quad c^Tx$$subject quad to:$$Ax leq b$$x geq 0$在Matlab中,我们可以使用intlinprog函数求解线性规划问题。

下面是一个实例:```matlabf = [-1, 1, 1; -1, 2, 1; -1, 1, 2]; % 目标函数系数向量A = [1, 1, 1; 1, 1, 1; 1, 1, 1]; % 约束条件系数矩阵b = [3, 3, 3]; % 约束条件右端向量lb = [0, 0, 0]; % 变量下限[x, fval] = intlinprog(f, [], [], A, b, lb);disp(x);disp(fval);```2.非线性规划模型非线性规划问题的一般形式为:$minimize quad g(x)$$subject quad to:$$h_i(x) leq 0, i = 1, ..., m$$x in X$在Matlab中,我们可以使用fmincon函数求解非线性规划问题。

第1讲 MATLAB入门(2015)

第1讲 MATLAB入门(2015)

特殊矩阵的建立:
rand(m,n) randn(m,n) H=hilb(n) magic(n) 生成m×n均匀分布的随机阵 生成m×n正态分布的随机矩阵 生成n阶Hilbert矩阵 产生维数维n×n的魔方阵
素及 ( 和两 各 相对 个 等角 行 )线 、 的列 元
2、矩阵中元素的操作
A(:)
A(i) A(r, c) A(r, :) A(:, c)
变量的显示
Matlab以双精度执行所有的运算,运算结果可以 在命令窗口输出,同时赋给指定变量;若无指定变 量,则系统会自动将结果赋给变量 ans。 Matlab 中数的输出格式可以通过 format 命令来 指定。 注:format 只指定变量的输出格式,而不改变 变量的值!
各种 format
3.141592653589793e+000 3.1416
format long g format rat
长格式g方式 分数形式
3.1415926535897 9 355/113
2、数学运算符号及标点符号
+ — * .* / ./ ^ .^ \ 加法运算,适用于两个数或两个同阶矩阵相加. 减法运算 乘法运算 点乘运算 除法运算 点除运算 乘幂运算 点乘幂运算 反斜杠表示左除.
在欧美的高等院校,Matlab 是线性代数、数值分 析、数理统计、自动控制、数字信号处理、动态系 统仿真、图像处理等课程的基本教学工具,已成为 大学生必须掌握的基本技能之一。

矩阵是MATLAB的核心

MATLAB的进入与运行方式(两种)
1、启动MATLAB后,就进入MATLAB命令窗口 (Command Windows)或工作区(Workspace), 命令窗口是用户与MATLAB进行交互的主要场所。命令 窗口的空白区域,用于输入和显示计算结果。(演示) 2、在编辑窗口运行程序,不过运行的结果仍出现 在命令窗口 。(演示)

数学建模Matlab实验程序

数学建模Matlab实验程序

Matlab实验作业及答案作业1:建立函数M文件2.建立下面函数的M文件,并求f(x)值.(1)f(x)=log(x1+x22),x=(1,2)(2)f(x)=sin(x2)+exp(2x3),x=2(1)function f = fun1(x1,x2)f = log(x1 +x2^2);end(2)function f = fun2( x)f = sin(x^2) + exp(2*x^3);end3.试编写同时求sin(x),cos(x),exp(x),abs(x)的M函数文件.function f = fun3(x)f = [sin(x) cos(x) exp(x) abs(x)];end4.建立符号函数的M文件:当输入的变量为负数时,返回值-1;当输入的变量为正数时,返回值1;而输入0时,返回值0.function f = fun4(x)if x>0f = 1;else if x == 0f = 0;elsef = -1;endendend5.建立函数 的M 文件。

function f = fun5(x)if x>0f = exp(x-1);elsef = x^2;endend6.通过帮助系统查询roots,poly,polyval,poly2str 的用法,用这些命令解下面的问题:已知一多项式的零点为{-1,1,2,3},写出该多项式,并且计算多项式在点x=2.5处的值。

root = [-1 1 2 3];p = poly(root);x = 2.5;a = polyval(p,x);eig(a)计算多项式y=x 3-3x+2的零点P = [1 0 -3 2];a = company(p); eig(a)7.查询sum,length 的用法,建立一个求向量的平均值的M 文件a = [1 2 3 4];b = sum(a);⎪⎩⎪⎨⎧≤>=-0,0,21x x x e f xc = length(a);d = b/c;eig(d)8.查询input,disp 的用法,建立M 文件:输入x,y 的值将其互换后输出x = input('x=');y = input('y=');disp ([x,y]);t=x;x=y;y=t;disp ([x,y]);作业题2:MATLAB 矩阵的处理1. 创建矩阵A = [1 2 -1 3 5;1 -2 9 0 -6;-3 3 -4 7 1;9 8 0 7 6];disp(A);2.取A 的1,2行与2,3列的交叉元素作子矩阵A1.A([1,2],[2,3])3.取A 的1,3行,然后按行形成矩阵A2A2 = A([1,3],:);4.逆序提取A 的1,2,3行,形成列矩阵A3.A3 = [A(3,:) A(2,:) A(1,:)]’;(“’”为转置符号)5.取A2的绝对值大于3的元素构成向量A4.A4 = find(A>3);6.求出A 的最大值a 及其所处的位置. 12135129063347198076A -⎛⎫ ⎪-- ⎪= ⎪-- ⎪⎝⎭a = max(max(A));[row col v] = find(a);disp([row col v]);7、设用三种方法(克拉姆法则、矩阵的除法、逆矩阵)解方程组AX=bA = [10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10];b = [32;23;33;31];逆矩阵法:x = inv(A)*b;disp(x);矩阵的除法x =A\b;克拉姆法则for n=1:4B = A;B(:,n) = b;x(n) = det(B)/det(A);enddisp(x);作业题3:Matlab 语法控制结构的使用(1) 用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头.a = [0 9 7 8 6 5 4 3 2 1];1078775658610975910A ⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭32233331b ⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭n = length(a);for i = 1:nfor j = 1:n-iif a(j)>a(j+1)t = a(j);a(j) = a(j+1);a(j+1) = t;endendenddisp(a)(2) 取任意数组,如[8 9 11 -9 0 2 -82 42 3 5]等的绝对值大于数3的元素构成向量(编程实现).a = [8 9 11 -9 0 2 -82 42 3 5];a = abs(a);b = find(a>3);a1 = a(b);disp(a1);(3)一球从h (比如100米)高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高?h = 100;for i = 1:10h = h/2;enddisp(h) (4)有一函数 写一程序,输入自变量的值,输出函数值.function fun34 = f(x,y)x = input('x=');y = input('y=');if x < 2f = x+1;elseif x >= 2 &&x <= 8f = 3*x;elseif x>8 && x<=20f = 4*x -5;elseif x>201,23,28(,)45,820cos()sin(),20x x x x f x y x x x x x +<⎧⎪≤≤⎪=⎨-<≤⎪⎪+>⎩f = cos(x)+sin(x);enddisp(f);end(5)从1到多少的自然数的和小于或等于1000,此时的和是多少?sum = 0;n = 1;while sum <= 1000sum = sum+n;n = n+1;enddisp(n - 1);disp(sum -n );(6) 已知 当m=100时,求y 的值。

数学建模matlab编程三

数学建模matlab编程三

数学建模matlab编程三水仙花数水仙花数是指一个3位自然数,其各位数字的立方和等于该数本身,输出1000以内的水仙花数,并求其个数。

y=[];%空矩阵count=0;for i=100:999a=rem(i,10);b=rem(fix(i/10),10);c=fix(i/100);if(a^3+b^3+c^3==i)y=[y,i];%不断扩充count=count+1;endendy,count突变素数当一个素数(只有两个正因数(1和自己)的自然数即为素数)与其前一个素数的差值大于等于5时,将其称之为“突变素数”(2不是“突变素数”),求10000以内的“突变素数”的个数.y=[];k=0;count=0;for i=1:10000if isprime(i)==1if (i-k)>=5y=[y,i];count=count+1;endk=i;endendy,count结果:count=820方差分析1试验3种猪饲料的饲养效果,得到9头猪的增重(单位:kg)如下:用matlab编程做作方差分析,估计各个总体的未知参数μi 和μ。

(不允许用anova1工具箱)先用sas得到结果方便后面检验:data ex;do a=1 to 3;input n@@;do i=1 to n;input x@@;output;end;end;cards;4 51 40 43 483 23 25 262 23 28;proc anova data=ex;class a;model x=a;run;sst——(每个因素的均值-总均值)^2的和ssa——每个水平的个数*(每个水平的均值-总均值)^2的和sse=sst-ssaf=(ssa/(r-1))/(sse/(n-r)) r为水平个数a1=[51,40,43,48];a2=[23,25,26];a3=[23,28];a=[a1,a2,a3];n=length(a);b=[1 1 1 1 2 2 2 3 3];sst=0;for i=1:nsst=sst+(a(i)-mean(a))^2;endssa=0;for i=1:3an=a(b==i);num=length(an);ssa=ssa+num*(mean(an)-mean(a))^2;endsse=sst-ssa;f=(ssa/2)/(sse/(n-3));p=1-fcdf(f,2,n-3);ssa,sse,sst,f,p可以看出和sas所得结果一样方差分析2测定4种种植密度下金皇后玉米的千粒重(单位:g)如下:用matlab编程做作方差分析,估计各个总体的未知参数mi和μ。

使用Matlab进行数学建模的基本流程

使用Matlab进行数学建模的基本流程

使用Matlab进行数学建模的基本流程引言数学建模作为一门交叉学科,旨在将实际问题转化为数学模型,并通过数学方法求解问题。

而Matlab作为一种常见且强大的数学软件,为数学建模提供了便捷的工具和平台。

本文将介绍使用Matlab进行数学建模的基本流程,包括问题提出、模型建立、求解分析等方面。

一、问题提出在进行数学建模之前,首先需要明确问题的提出。

问题可以来源于实际生活、工程技术、自然科学等领域。

在提出问题时,需要明确问题的背景、目标和约束条件。

以一个实际问题为例,假设我们需要优化某个生产过程的生产能力,而该过程中不同工序的生产速度会受到各种因素的影响。

我们的目标是最大化总产量,同时要满足资源约束和质量要求。

二、模型建立在问题提出的基础上,开始建立数学模型。

数学模型是问题实质的抽象和化简,它可以通过数学语言和符号来描述问题。

在建立模型时,需要关注以下几个方面:1. 变量的选择:根据问题的特点和目标,确定需要考虑的变量。

例如,在我们的生产过程优化问题中,可以考虑生产速度、资源利用率等变量。

2. 建立关系:通过分析问题,确定变量之间的关系。

关系可以是线性的、非线性的,也可以是概率性的。

在我们的例子中,我们可以根据生产速度和资源利用率的关系建立数学表达式。

3. 假设和简化:在建立模型时,为了简化问题,可以进行一些假设和简化。

但是需要保证这些假设和简化对问题求解的结果不会产生重大影响。

基于以上步骤,我们可以建立一个数学模型,例如使用线性规划模型来最大化总产量,并满足资源和质量约束。

三、求解分析模型建立完毕后,需要使用Matlab进行求解分析。

Matlab提供了丰富的函数和工具箱,可以方便地进行数学计算、模拟仿真、优化求解等操作。

在求解分析阶段,我们可以进行以下几个步骤:1. 数据处理:将实际问题中获取的数据导入Matlab,并进行必要的预处理和清洗。

例如,我们可以将生产速度和资源利用率的数据导入Matlab,进行统计分析和数据可视化。

2015研究生数学建模MATLAB程序(完整版)

2015研究生数学建模MATLAB程序(完整版)

2015研究生数学建模MATLAB程序(完整版)代码一:% 解密过程及破译密文统计clearclcfid1=fopen('mingwen1.txt','r');str1=fgets(fid1);fclose(fid1);fid2=fopen('jiemihou1.txt','r');str2=fgets(fid2);fclose(fid2);% 删去单词之间的间隔和标点符号ad=find(str2==',');str2(ad)='';ad=find(str2=='.');str2(ad)='';a d=find(s tr2==';');str2(ad)='';ad=find(str2=='''');str2(ad)='';ad=find(str2=='?');str2(ad)=''; ad=find( str2==':');str2(ad)='';ad=find(str2=='"');str2(ad)='';ad=find(str2=='-');str2(ad)='';ad=find(s tr2=='/');str2(ad)='';ad=find(str2==' ');str2(ad)='';for i=0:25;ad=find(str1=='A'+i);str1(ad)='a'+i;endfor i=0:25;ad=find(str2=='A'+i);str2(ad)='a'+i;endn1(1,26)=0;n2(1,26)=0;n1(1)=sum(str1=='a');n2(1)=sum(str2=='a');n1(2)=sum(str1=='b');n2(2)=sum(str2=='b');n1(3)=sum(str1=='c');n2(3)=sum(str2=='c');n1(4)=sum(str1=='d');n2(4)=sum(str2=='d');n1(5)=sum(str1=='e');n2(5)=sum(str2=='e');n1(6)=sum(str1=='f');n2(6)=sum(str2=='f');n1(7)=sum(str1=='g');n2(7)=sum(str2=='g');n1(8)=sum(str1=='h');n2(8)=sum(str2=='h');n1(9)=sum(str1=='i');n2(9)=sum(str2=='i');n1(10)=sum(str1=='j');n2(10)=sum(str2=='j');n1(11)=sum(str1=='k');n2(11)=sum(str2=='k');n1(12)=sum(str1=='l');n2(12)=sum(str2=='l');n1(13)=sum(str1=='m');n2(13)=sum(str2=='m');n1(14)=sum(str1=='n');n2(14)=sum(str2=='n');n1(15)=sum(str1=='o');n2(15)=sum(str2=='o');n1(16)=sum(str1=='p');n2(16)=sum(str2=='p'); n1(17)=sum(str1=='q');n2(17)=sum(str2=='q');n1(18)=sum(str1=='r');n2(18)=sum(str2=='r');n1(19)=sum(str1=='s');n2(19)=sum(str2=='s');n1(20)=sum(str1=='t');n2(20)=sum(str2=='r');n1(21)=sum(str1=='u');n2(21)=sum(str2=='u');n1(22)=sum(str1=='v');n2(22)=sum(str2=='v');n1(23)=sum(str1=='w');n2(23)=sum(str2=='w');n1(24)=sum(str1=='x');n2(24)=sum(str2=='x');n1(25)=sum(str1=='y');n2(25)=sum(str2=='y');n1(26)=sum(str1=='z');n2(26)=sum(str2=='z');[N1,IX1]=sort(n1,'descend')[N2,IX2]=sort(n2,'descend')% 频率对应idx=find(str2=='v');str2(idx)='E';idx=find(str2=='g');str2(idx)='T';idx=find(str2=='l');str2(idx)='A';idx=find(str2=='m');str2(idx)='N';idx=find(str2=='z');str2(idx)='I';idx=find(str2=='h');str2(idx)='S';idx=find(str2=='r');str2(idx)='O';idx=find(str2=='t');str2(idx)='R';idx=find(str2=='i');str2(idx)='D';idx=find(str2=='s');str2(idx)='L';idx=find(str2=='o');str2(idx)='H';idx=find(str2=='w');str2(idx)='F';idx=find(str2=='x');str2(idx)='U';idx=find(str2=='f');str2(idx)='C';idx=find(str2=='u');str2(idx)='G';idx=find(str2=='k');str2(idx)='P';idx=find(str2=='d');str2(idx)='Y';idx=find(str2=='n');str2(idx)='M';idx=find(str2=='y');str2(idx)='B';idx=find(str2=='e');str2(idx)='K';idx=find(str2=='b');str2(idx)='W';idx=find(str2=='p');str2(idx)='V';idx=find(str2=='q');str2(idx)='Q';idx=find(str2=='a');str2(idx)='J';idx=find(str2=='c');str2(idx)='X';idx=find(str2=='j');str2(idx)='Z'; %%%%%%%% for i=0:25;ad=find(str2=='A'+i);str2(ad)='a'+i; endn3(1,26)=0;for i=0:25;n3=sum(str2=='a'+i);end%破译得到的明文及频率disp(str2)[N3,IX3]=sort(n3,'descend')N3/(sum(N3))代码二:% 基于频率分析,寻找最佳修改位置% p1-----传输过程中每个字符出现丢失的概率% p2-----传输过程中每个字符出现篡改的概率% p3-----传输过程中每个字符出现被添加的概率% derta-----各字母间频率差异% derta_n-----各字母需要改变的数目l2=size(str2);syms p1p2p3p1=0.1;p2=0.1;p3=0.1;A=n1./sum(n1);B=n3./sum(n3);derta=A-B;derta_n=round(sum(n3).*derta.*p1+sum(n3).*derta.*p2);% l(i)-----某一字符左侧可能连接的字符% r(i)-----某一字符右侧可能连接的字符% count_l-----统计某一字符左侧可能连接的字符总数% count_r-----统计某一字符右侧可能连接的字符总数% max_l-----某一字符左侧出现最多的字符% max_r-----某一字符右侧出现最多的字符% ad-----字符所在位置length_str2=length(str2);for i=1:26if derta_n(i)<0z=zeros(length_str2,1);n0=find(str2=='a'+i-1);n1=sum(str2=='a'+i-1);ll=zeros(n1,1);rr=zeros(n1,1);for j=1:n1for t=1:n1l1(j)=str2(n0(t)-1);r1(j)=str2(n0(t)+1);endendl1_i=l1(:);r1_i=r1(:);for m1=1:26;n1(m1)=sum(str1=='a'+m1); end[r,c]=max(n1)for ii=1:size(str2)ad=find(str2=='a'+c-1)endfor k1=1:derta_n(i)str2(ad(k1))=([c 'a'+i]);endelseif derta_n(i)>0z=zeros(length_str2,1);n0=find(str2=='a'+i-1);n1=sum(str2=='a'+i-1);ll=zeros(n1,1);rr=zeros(n1,1);for j=1:n1l2(j)=str2(n0(j)-1);r2(j)=str2(n0(j)+1);endl2_i=l2(:);r2_i=r2(:);for m1=1:26;n1(m1)=sum(str1=='a'+m1);end[r,c]=min(n1)for k1=1:derta_n(i)ad(k1)=find(str2=='a'+c-1); str2(ad(k1))=([ ]); endendendenddisp(str2)for m1=1:26;n1(m1)=sum(str2=='a'+m1-1);end[N3,IX3]=sort(n3,'descend')N3/(sum(N3))。

3._matlab数学建模

3._matlab数学建模

建 模 软 件matlab
建模软件
(4) 取出上三角和下三角 >>triu(a) ans = 10 2 12 0 2 4 0 0 6 >>tril(a) ans = 10 0 0 34 2 0 98 34 6 >>[l,u]=lu(a) l = 0.1020 0.1500 1.0000 0.3469 1.0000 0 1.0000 0 0 u = 98.0000 34.0000 6.0000 0 -9.7959 1.9184 0 0 11.1000
建 模 软 件matlab
建模软件
MATLAB常用数学函数 三角函数和双曲函数
含义 名称 sin cos tan cot asin acos 正弦 余弦 正切 余切 反正弦 反余弦 csc asec acsc sinh cosh tanh 余割 反正割 反余割 双曲正弦 双曲余弦 双曲正切 atanh acoth sech csch asech acsch 反双曲正切 反双曲余切 双曲正割 双曲余割 反双曲正割 反双曲余割 名称 含义 名称 含义
建 模 软 件matlab
建模软件
阵列的运算符号 除了加减符号外其余的阵列运算符号均须 多加 . 符号。 阵列运算功能 (注意:一定要 多加 . 符号) + 加 - 减 .* 乘 ./ 左除 .\ 右除 .^ 次方 .’ 转置 矩阵的几种基本变换操作 (1) 通过在矩阵变量后加’的方法来表示转置运算
建 模 软 件matlab
建模软件
4、基本数学运算
在MATLAB下进行基本数学运算,只需将运算式直接打在提示号 >> 后面,并按Enter键。 MATLAB将计算 的结果以ans显示。 【例】求[12 2 (7 4)] 32 的算术运算结果。 (1)用键盘在MATLAB指令窗中输入以下内容 >> (12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果。 ans = 2 我们也可给运算式的结果设定一个变量x: x = (5*2+1.3-0.8)*10^2/25 x= 42 变量x的值可以在下个语句中调用: y= 2*x+1 y= 85

数学建模MATLAB程序

数学建模MATLAB程序

function 为函数定义的关键字y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

矩阵是MATLAB最基本的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。

在MATLAB中,不需对矩阵的维数和类型进行说明,MATLAB 会根据用户所输入的内容自动进行配置。

1.建立矩阵建立矩阵可以用:直接输入法、利用函数建立矩阵和利用M文件建立矩阵。

直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

(也可以用回车键代替分号)利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。

例如:reshape函数和diag函数等。

reshape函数用于建立数值矩阵。

diag函数用于产生对角阵。

利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。

其步骤为:第一步:使用编辑程序输入文件内容。

第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。

第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。

利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。

其步骤为:第一步:使用编辑程序输入文件内容。

第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。

第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。

在MATLAB中,冒号是一个重要的运算符。

利用它可以产生向量,还可用来拆分矩阵。

冒号表达式的一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。

冒号表达式可产生一个由e1开始到e3结束,以步长e2自增的行向量。

建立矩阵的函数常用函数有:eye(size(A)) 产生与A矩阵同阶的单位矩阵zeros(m,n) 产生0矩阵ones(m,n) 产生幺矩阵rand (m,n) 产生随机元素的矩阵Size(a) 返回包含两个元素的向量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档