Matlab与计算机仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1 变量
✓一般变量
命名规则等和C、C++等高级语言相同,不赘述
✓特殊变量
变量名 ans pi eps inf NaN i,j
realmin realmax
含义 运算结果的默认变量名 圆周率 计算机的最小数 无穷大,如 1
0
非数,如 0 ,
0 i j 1
最小的可用正实数 最大的可用正实数
method是插值函数的类型,允许的取值有linear(线 性插值)、nearest(用最接近的相邻点插值)、cu bic(三次插值)、spline(三次样条插值)
Matlab与计算机仿真
数学建模教练组助管 计算机52班 唐佩佳
Matlab 介绍
60mins
计算机 仿真
20mins
自由提 问
Xmins
✓用法简单 ✓适用范围广 ✓程序结构强 ✓具有开放性和延展性
1.1 数值运算能力强
✓500多种数学、统计、科学及工程方面的 函数
✓标识自然,使问题和解答像数学算式一样 简单明了
以上变量如未被用户使用,则变量的值 为系统的预定义的值
如果用户对上表中的变量进行了重新赋 值,则变量的值被临时覆盖,可通过cle ar命令消除用户自定义的变量的值
2.2 数组的创建
✓直接输入 A=[1 2 3; 4 5 6; 7 8 9];
✓语句生成
from:step:to 格式生成固定步长的数组
1.4 开放及可延伸的架构
✓大多数核心文件和工具箱文件都是开放的, 容许用户接触大多数文件的源代码 ✓可以更改现有函数库中的函数 ✓甚至可以加入自己的函数使Matlab成为使 用者所需要的编程环境
1.5 丰富的程式工具箱
✓这些工具箱提 供了使用者在特别应用领 域所需之许多函数。现有工具箱有:符号运 算(利用Maple V的计算核心执行 )、影像 处理、统计分析、信号处理、神经网络、模 拟分析、控制系统、即时控制、系统确认、 强建控制、弧线分析、最佳化、模糊逻辑、 mu分析及合成、化学计量分析。
B=A>0.5; A(B)
2.4 矩阵元素的更改或删除
A(i,j)=x; A(:,3)=[];
%将矩阵A中的(i,j)的值改为x %删除矩阵A中的第3列
2.5 矩阵的特殊操作
triu(x) tril(x)
产生X的上三角矩阵 产生X的下三角矩阵
3.1 矩阵之间的关系运算
C1=A==B 判断A,B是否相同,同则为1, 不同则为0
结构数组是一种非常有用的数据结构,尤其是在 解决复杂问题时可以很大程度上提高算法效率。
结构数组实质上类似与C、C++中的结构体
结构数组
结构体
%exp4_1_1%
player.name=‘Nike’; %创建name并赋值 player.nation=‘China’; %创建nation并赋值 player.att=[20 17 19 20]; %创建nation并赋值
✓用户可以将精力用于解题方面,而不是浪 费在语言操作上
1.2 先进的资料视觉化功能
✓强有力的二维、三维图形工具 ✓物件导向图形架构让使用者可以执行视觉 数据分析,并制作高品质的图形
1ቤተ መጻሕፍቲ ባይዱ3 高阶但简单的程序环境
✓作为一种直译式程序语言,编程所花时间 约为FORTRAN或C的几分之一 ✓不需要编译、连接即能执行 ✓包含了丰富、易用的内建功能
C1=A>=B 判断A是否大于等于B,是则 为1,不是则为0
介绍两个常用于调试程序的函数
size(A) 测算矩阵的大小 ,返回[m n] isempty(A) 判断矩阵是否为空,是则为1
3.2 用图形方式查看稀疏矩阵的信息
%exp3_2_1% A=[] A=sprandsym(200,0.03)+100*speye(200,200);
randn(m,n) mxn的正态分布的随机矩阵
eye(n,n)
mxn的单位阵
2.3 矩阵的提取
✓A(r,c) 矩阵A的元素(r,c) ✓A(r,:) 矩阵A的第r行 ✓A(:,c) 矩阵A的第c列
✓利用逻辑矩阵来提取矩阵
用于:寻找矩阵中大于某个值的元素等类似 的问题
%寻找A中所有大于0.5的元素%
✓多项式求根 roots() ✓部分分式展开 residue() ✓多项式的微分积分
5.2 数据插值
5.2.1一维数据插值
Y1=interp1(X,Y,X1,’method’)
根据X,Y的值,计算出在X1处的值,并返回 给Y1,其中X,Y是两个等长的已知向量,分 别描述采样点和样本值,X1描述欲插值的 点,返回值Y1是与X1等长的插值结果。
%生成系数矩阵 spy(A); %画出稀疏矩阵A中的非零元素分布图
%exp3_2_2%
A=[];
A=sprandsym(200,0.03)+100*speye(200,200);
p=[];
p=symamd(A); %计算矩阵A的对称
spy(A(p,p));
%画出排序后A中非零元素的分布图
字符数组(字符串)可以被很简单的创建,类型转 换,比较,查找,替换等。 且操作比C、C++简单。但在建模中较少运用,在此 不赘述。
5.1 多项式的四则运算及导数
%exp5_1_1%
p1=[1 8 0 0 -10]; % x4 8x3 10
p2=[2 -1 3];
% 2x2 x 3
poly2str(p1,’x’) %以比较习惯的方式显示多项式
poly2str(p2,’x’) %以比较习惯的方式显示多项式
y=conv(p1,p2) %使用Conv函数求两多项式 的乘积
linspace(a,b,n) 生成a~b间的线性分布的n个素 的数组
logspace(a,b,n) 生成 10a ~ 10b 之间对数等分的 n个元素的数组
✓特殊矩阵的生成方法
zeros(m,n) mxn的全0矩阵
ones(m,n) mxn的全1矩阵
rand(m,n) mxn的均匀分布的随机矩阵, 取值为0~1
poly2str(y,’x’) 多项式
%以比较习惯的方式显示
y1=polyder(y); %使用polyder函数求导数
poly2str(y1,’x’) 多项式
%以比较习惯的方式显示
5.2 多项式求值
polyval(p,a)
%以p为系数的多项式,将
自变量的值取a
a 可以是一个数,也可以是矩阵,当其为矩阵时 相当于取a 中的每一个元素,结果是一个矩阵