没有合适的资源?快使用搜索试试~ 我知道了~
首页大学生用Matlab来数学建模(各种模型)
大学生用Matlab来数学建模(各种模型)
需积分: 48 28 下载量 153 浏览量
更新于2023-03-16
评论 4
收藏 194KB PDF 举报
想参加数学建模的同学的福音 各种数学建模的算法和matlab的实现方法
资源详情
资源评论
资源推荐
-291-
附录一 Matlab 入门
§ 1 概论
常用的数学软件有 Maple, Mathematica, Matlab 等;常用的大型统计软件有
SAS ,SPSS 等。下面我们简要地介绍一些 Matlab 的功能,应用范围及发展史。
Matlab 有五大通用功能:数值计算功能(Nemeric),符号运算功能(Sybolic) (当要求
Matlab 进行符号运算时,它就请求 Malpe 计算并将结果返回到 Matlab 命令窗口),数据
可视化功能(Graphic),数据图形文字统一处理功能(Notebook)和建模仿真可视化功能
(Simulink)。
Matlab 在线性代数,矩阵分析,数值及优化,数理统计和随机信号分析,电路与
系统,系统动力学,信号和图像处理,控制理论分析和系统设计,过程控制,建模和仿
真,通信系统,财政金融的众多领域的理论研究和工程设计中得到了广泛应用。
MATLAB 是 1984 年由美国 Mathworks 公司推向市场。该软件有三大特点:一是功
能强大;二是界面友善,语言自然;三是开放性强(仅 Mathworks 公司就推出了 30 多个
应用工具箱)。Matlab 的版本目前已经发展到 Matlab7.3。
§2 Matlab 简介
1. 指令行的编辑
启动 Matlab 后,就可以利用 Matlab 工作。由于 Matlab 是一种交互式语言,随时输
入指令,即时给出运算结果是它的工作方式。
2*sin(0.3*pi)/(1+sqrt(5))
↵
ans=0.5000 (ans 是一个保留的 Matlab 字符串,它表示上面一个式子的返回结
果,用于结果的缺省变量名)
2. 入门演示
intro
↵ demo ↵
3. 帮助
① help
↵ %帮助总揽
help elfun
↵ %关于基本函数的帮助信息
help exp
↵ %指数函数 exp 的详细信息
② lookfor 指令
当要查找具有某种功能但又不知道准确名字的指令时,help 的能力就不够了,
lookfor 可以根据用户提供的完整或不完整的关键词,去搜索出一组与之相关的指令。
lookfor integral
↵ %查找有关积分的指令
lookfor fourier
↵
%查找能进行傅利叶变换的指令
③ 超文本格式的帮助文件
在 Matlab 中,关于一个函数的帮助信息可以用 doc 命令以超文本的方式给出,
如:
doc
↵
doc doc
↵
doc eig
↵ %eig 求矩阵的特征值和特征向量
④ pdf 帮助文件
4. 简单的矩阵输入
① 要直接输入矩阵时,矩阵元素用空格或逗号分隔;矩阵行用分号“;”隔离,整
个矩阵放在方括号“[ ]”里。
-292-
A=[1,2,3;4,5,6;7,8,9] ↵
说明:指令执行后,矩阵
A被保存在 Matlab 的工作间(workspace)中,以备后
用。如果用户不用 clear 指令清除它,或对它进行重新赋值,那末该矩阵会一直保存在
工作间中,直到本 Matlab 指令窗关闭为止。
② 矩阵的分行输入
A=[1,2,3
4,5,6
7,8,9]
5. 语句与变量
① Matlab 语句有两种最常见的形式
i) 表达式
ii)变量=表达式
[例1] 表达式的计算结果
1996/18
↵
ans=110.8889
[例2] 计算结果的赋值
s=1-1/2+1/3-1/4+1/5-1/6+...
1/7-1/8;
↵
说明:三个小黑点是“连行号”,分号“;”作用是:指令执行结果将不显示在屏幕
上,但变量 s 将驻留在内存中。若用户想看 s 的值,可键入以下命令:
s
↵
(s=
0.6345)
② 特殊变量
ans 用于结果的缺省变量名
pi 圆周率
eps 计算机的最小数
flops 浮点运算次数
inf 无穷大 如 1/0
NaN 不定量 如 0/0
i(j) i=j=
1−
nargin 所用函数的输入变量数目
nargout 所用函数的输出变量数目
realmin 最小可用正实数
realmax 最大可用正实数
6. 数据结构:向量、矩阵、结构数组和细胞数组
①向量的转置
z=[1+j,2+pi*i,-sqrt(-1)]’
z =
1.0000 - 1.0000i
2.0000 - 3.1416i
0 + 1.0000i
当对复数向量进行转置操作时,可以得到其共轭转置向量。
z.' (非共轭转置向量)
-293-
②产生一个行向量
t=[0:0.1:10] %产生从 0 到 10 的行向量,元素之间间隔为 0.1
t=linspace(n1,n2,n)
%产生 n1 和 n2 之间线性均匀分布的 n 个数 (缺省 n 时,产生 100 个数)
t=logspace(n1,n2,n) (缺省 n 时,产生 50 个点)
③ who,whos,size 和 length 是对提供工作空间变量信息很有用处的四个命令。
who 执行该命令可列出储存空间的所有变量
whos 显示所有的变量,变量所占的字节数及该变量是否是实数
size(a) 执行该命令可以得到矩阵 a 的行数与列数
length(a)执行该命令后,屏幕上显示出向量 a 的长度。如果 a 是矩阵,则显示的
参数为行数列数中的最大数。
④ 矩阵的标号
A(m,n)表示矩阵 A 的第 m 行,第 n 列的元素;
A(1:2,1:3)表示矩阵 A 的从第一行到第二行,从第一列到第三列的所有元素;
A(:) 可以得到一个长向量,该向量的元素是按列一一叠加在一起的。例如
a=[1 2;3 4];a(:)
↵
ans=
1
3
2
4
矩阵的下标也可以是向量。例如
b=a(x,y)
↵
; 可以得到一个矩阵 b。a 的行标来自向量 x,而列标来自向量 y。
例如,矩阵 a 有 n 列,那末
b=a(:,n:-1:1)
将使矩阵 a 按列的逆序排列。
⑤ 特殊矩阵
i)单位矩阵
eye(m),eye(size(a)) 可以得到与矩阵 a 同样大小的单位矩阵,eye(m,n)可得到一
个可允许的最大单位矩阵而其余处补 0。
ii)所有元素为 1 的矩阵
ones(n),ones(size(a)),ones(m,n)
iii)所有元素为 0 的矩阵
zeros(n),zeros(m,n)
iv)空矩阵是一个特殊矩阵,这在线性代数中是不存在的。
例如: q=[ ]
矩阵 q 在工作空间之中,但它的大小为零。通过空阵的办法可以删去行与列。例如
a=rand(5); a(:,1:3)=[]
第一条指令执行后得到一个
55
×
的矩阵;第二条指令将矩阵 a 的前三列删除。
v) 对角矩阵
当 v 是向量时,diag(v)得到以 v 的元素为对角线上元素的对角矩阵;
当 v 是矩阵时,diag(v) 得到一个列向量,其元素为矩阵 v 对角线上的元素,
diag(v,1)得到矩阵 v 对角线上移一行的元素组成的列向量,diag(v,-1)得到矩阵 v 对
角线下移一行的元素组成的列向量。
⑥ 字符串要用单引号。例如:
-294-
disp('text string') % disp 显示命令
还有几个字符串命令可以作为文字说明和绘图标题说明等,如
num2str,int2str,fprintf 和 sprintf。同样,可以借助于 help 命令了解它们的具体用
法。
⑦ 结构数组
有时需要将不同的数据类型组合成一个整体,以便于引用。这些组合在一个整体中
的数据是相互联系的。例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等
项都是和该学生有联系的。
下面简单介绍结构体的定义与引用。
i)结构数组的定义
定义结构数组可以采用两种方法:用赋值语句定义和用函数 struct 定义。
用赋值语句定义结构时,只要给出结构的属性赋值,Matlab 就会自动把该属性增
加到结构中,赋值时,结构名和属性名用“.”分开。例如,下面三条语句将定义一个
11×
的结构数组,结构名为 student,有三个属性:name、num、test。该结构数组只有一
个元素,在命令窗口中键入结构名 student,将显示该元素所有属性的属性值的特性。
student.name='John Doe';
student.num=123456;
student.test=[79 75 73;80 78 79;90 85 80];
再键入以下三行可给该结构数组增加一个元素。
student(2).name='Ann Lane';
student(2).num=123422;
student(2).test=[70 76 73;80 99 79;90 85 80;80 85 86];
现在结构数组 student 的维数为
21
×
。当结构数组的元素超过 1 个时,MATLAB 的
帮助信息中,不再显示不同属性的值,而只显示数组名、属性名和维数大小。
函数 struct 也可用来定义结构数组,其调用格式为:
结构数组名=struct(‘属性 1’,’属性值 1’, ‘属性 2’,’属性值 2’,…)
ii)结构数组属性值的修改、设置和获取
结构数组一旦形成,就可取出数组中的某个元素并修改该元素的某个属性的值。以
上面建立的 student 数组为例,命令
str=student(2).name
可取出第二个元素的 name 属性的值。
命令
n=student(2).test(4,2)
取出第二个元素 test 的值中第四行第二列上的数。
同理,可用命令
student(2).test(4,2)=0
修改第二个元素 test 的值中第四行第二列上的数的值。
关于结构数组有如下函数:
函数名 作用
struct 生成和转换为结构数组
fieldnames 查询结构数组的属性名
getfield 查询结构数组的属性值
setfield 设置结构数组的属性值
rmfield 删除属性
剩余17页未读,继续阅读
YunhuiGIS
- 粉丝: 5
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0