英语原文共 247 页,剩余内容已隐藏,支付完成后下载完整资料
1 MATLAB的介绍 基本模型与应用程序
1.1为什么选择MATLAB?
首先,MATLAB(矩阵实验室)不仅是一种非常灵活和简单的编程工具,而且可以作为高级编程语言使用。我们之所以选择MATLAB,是因为它与其他编程语言相比有一些重要的优势。这个MathWork 产品包含用于专门应用程序的通用内核和工具箱。初学者应该从学习内核开始。正如前面提到的,该语言易于学习和使用,但它提供了控制流语句、函数、数据结构、输入/输出语句和其他设施。数学函数库为各种数字算法提供了大量的函数。MATLAB GUI(图形用户界面)也很好,相应的功能也很容易使用。编写与MATLAB代码交互的C程序也是可运行的。
1.1.1 数组和矩阵代数
MATLAB的基本元素是矩阵。即使一个简单的变量也被认为是一个1times;1矩阵。基本类型是double(8字节)。接下来我们讲解几个专有名词。
命令的格式。在使用小数点后,用四位数字输出数值。它相当于命令。
gt;gt; format short
如果我们想要一个更长的输出格式,我们必须使用其他形式的格式命令,例如
format long: 以15位数字缩放定点格式。
format short e: 浮点格式有5位数字。
format long e: 浮点格式有15位数字。
format short g: 最好的固定或浮点格式,有5位数字。
format long g: 最好的固定或浮点格式,有15位数字。
请看下例中的对话,
gt;gt; pi
ans =
3.1416
gt;gt; format long
gt;gt; pi
ans =
3.14159265358979
此处及gt;gt;的续集里,gt;gt;代表着提词器。要了解更多的格式功能,只需简单地编译
gt;gt; help format
或
gt;gt; help sprintf
sprintf允许ANSI C格式。其中,format short是隐含的选项。此外,我们还可以通过使用可变精度算法(vpa)获得更多的输出数字。例如,
gt;gt; vpa(pi,100)
将给出pi的100位数字的近似值。想要了解更多,可以编译
gt;gt;help vpa
数组。没有一个声明可以定义数组的维数。分配一个小矩阵的最简单方法是使用一个显式列表。同一行上的组成部分应该用空格或逗号分隔。行用分号分隔或lt;输入gt;。矩阵本身是由方括号分隔的,即[]。例如,
gt;gt; A = [1 2;3 4]
returns the matrix
A =
- 2
- 4
数组的组件可以是实数、复数或任何MATLAB表达式。例如,
gt;gt; w =[0.7 sqrt(2) (1 9) lowast; 4/5]
returns the vector (sqrt(c)提供了一个radic;c的近似值):
w = [0.7000 1.4142 8.0000]
为了得到数组元素,我们应该使用索引
gt;gt; y = w(2)
我们得到了
y = 1.4142
其中,隐式索引的第一个值是1。这解释了上述y的值。如果调用了当前维度之外的组件,那么该数组将被扩展,而尚未定义的组件将接收到值0。例如
gt;gt; w(6)=minus;w(1);
gt;gt; w
returns
w =(0.7000 1.4142 8.0000 0 0 minus;0.7000)
如果我们以它的名称来调用一个变量,它的当前值就会被返回(例如,请参见pi及其编译代码)。这对于赋值语句也是成立的;也就是说,返回赋值的变量值。如果我们想要避免返回当前值,这意味着如果变量是一个数组,那么就意味着许多值,我们应该在语句的末尾放置一个分号。
让我们回到数组。考虑上面定义的矩阵A,并编译
gt;gt; A(2,4) = 7;
gt;gt; A
那么,我们会得到
A =
- 2 0 0
3 4 0 7
我们也可以删除矩阵的行或列。例如,我们用一下语句删除了上面矩阵A的第三列:
gt;gt; A(:,3) =[]
然后A改为。
A =
- 2 0
3 4 7
我们还可以连接数组。考虑下面的语句。
gt;gt; A1 = [1 2;3 4];
gt;gt; A2 = [5 6;7 8];
gt;gt; M = [A1;A2)
然后我们得到矩阵
M =
1 2
3 4
5 6
7 8
For
gt;gt; N = [A1 A2]
故我们得到了矩阵。
N =
1 2 5 6
3 4 7 8
冒号也很有用。
gt;gt; B = M(2:3,:)
然后B包含第2行和第3行以及M的所有列;也就是说,我们得到的
B =
3 4
5 6
A矩阵也可以通过使用函数one、zeros和eye来定义。
gt;gt; A= ones(m,n);
定义A为一个mtimes;n矩阵,所有的元素为1。当然,变量m和n应该已经赋值。
gt;gt; A= ones(n);
定义A为一个ntimes;n的矩阵,所有的元素为1。类似的定义是用zeros来做的,但是所有的元素都是0。通过使用eye,我们可以定义单位矩阵;例如,
gt;gt; I= eye(10);
I是10times;10的单位矩阵。
为了得到矩阵的维数,我们使用MATLAB函数size。让我们考虑语句序列:
gt;gt; Q = ones(4,7);
gt;gt; a = size(Q)。
得到
a =
4 7
为了得到向量的维数,我们可以使用size或length。让我们考虑下述语句序列。
gt;gt; p = [1 2 3 4];
gt;gt; q = p′;
现在
gt;gt; length(p)
MATLAB返回4,而对于gt;gt;length(q)也返回4.
根据
gt;gt; size(p)
我们得到了
ans =
1 4
而对于
gt;gt; size(q)
我们得到
ans =
4 1
实际上prsquo;是p的转置,length函数可以用在矩阵上。它给出了最大值(size),即最大行数和列数。
矩阵代数。给出了矩阵的一般代数运算或矩阵和向量的代数运算。例如,如果A和B是矩阵,我们可以设置。
gt;gt; X = A B;
X将存储两个矩阵的和。当然A和B应该有相同的维度。减法,以及通常的产品,乘法,也可用。一个矩阵的转置由′表示。例如,应该写成。
gt;gt; Y = X′;
此外,MATLAB还提供了array- smart操作。让和,两个具有相同尺寸的矩阵。因此
gt;gt; P = A.lowast; B;
将构建具有相同维度和定义的矩阵 ,并有如下定义
,
然而
gt;gt; Q = A./ B;
提供矩阵,并有如下定义,
,
通过
gt;gt; D = A .lowast; A
我们得到,并有如下定义,
,
采用高斯消去算法求解线性代数方程组。如果系统Ax = b的矩阵A和右边b是建立的,那么我们就可以用运算符“\”来得到解;也就是说,
gt;gt; x = A\ b;
下面给出了一个使用高斯消去法的实例。
一个经济学例子。要解决的问题被称为生产成本问题(例如,[DC72,第4.13章])。公司有n个部门(部门)。对于每个部分,直接成本是已知的。但是公司的员工想要找到每个部分的净成本。问题出现的原因是,j节的许多人为了另一节k的好处,工作了一个月的天数,而这发生在每对(j,k)的部分,j,k = 1,2,hellip;,n。用表示第i节的总成本,我们得到方程:
这里是第j节的成本的一部分,因为直接成本, i = 1,2,hellip;n,已知,我们得到线性代数方程组。
未知量是, i = 1,2,hellip;,n。我们可以把(1.1)写成AT= D,其中A是系统矩阵,D是右边的列向量,T表示未知的列向量。
净成本, i = 1,2,hellip;n是由公式给出的。
因此,生产成本问题可以解决如下。
步骤0:建立矩阵A和rhs(右侧)D。
步骤1:计算系统的解T(总成本)AT = D。
步骤2:用公式(1.2)计算净成本()。
通常,矩阵A从具体的例子是可逆的和良好的康迪。更具体地说,我们考虑一个来自[DC72]的例子。一个公司有五个部分(n = 5),即
序号 内容
1 研究 2
2 发展 3
3 生产 6
4 可数性 0.5
5 IT 0.3
货币单位是一百万美元。矩阵[]如下所示
让我们注意一下,每一栏的总和等于1(或等于100%)。这显示了部分工作的分派。因此,我们获得(通过(1.1))如下方程组
考虑到公式(1.2),可以在矩阵的对角线上找到值。因此,我们得到
相关代码如下。
% The production costs problem
n=5;
A = eye(n) ; % load diagonal of matrix A
% load other nonzero elements
A(1,2) = minus;0.2; A(1,4) = minus;0.1; A(1,5) = minus;0.3;
A(2,1) = minus;0.2; A(2,3) = minus;0.2; A(2,4) = minus;0.2;
A(2,5) = minus;0.2; A(3,1) = minus;0.1; A(3,2) = minus;0.2;
A(3,4) = minus;0.5; A(3,5) = minus;0.2;
A(4,5) = minus;0.3 ;
A(5,1) = minus;0.1; A(5,4) = minus;0.1;
A
D = [2, 3, 6, 0.5, 0.3]′
T = A\D % solve system AT = D by Gaussian elimination
P = [0.6, 0.6, 0.8, 0.1, 0]′ % load values
NC = P .* T % compute Net Co
全文共33017字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[11842],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。