MATLAB(第四章和第八章)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 线性代数问题的计算机求解
一、实验内容:
题目1.
Jordan 矩阵是矩阵分析中一类很实用的矩阵,其一般形式为
J= ⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡--ααα 0
00
010001-,例如J1= ⎥⎥⎥
⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡-----500001500001500001500001
5 试利用diag()函数给出构造J1的语句。
【分析】该题为对角矩阵的问题。对J 要利用diag()能够构造对角矩阵和次对角矩阵的性
质。J1只需对角矩阵和次对角矩阵相加即可。这里需要对diag()函数的调用。如A=diag(V)---已知向量生成对角矩阵,A=diag(V,k)—生成主对角线上第k 条对角线为V 的矩阵(其中k 可为正负)
【解答】:
输入如下语句:
>>J1=diag([-5 -5 -5 -5 -5])+diag([1 1 1 1],1) 按ENTER 键,显示如下: J1=
-5 1 0 0 0 0 -5 1 0 0 0 0 -5 1 0 0 0 0 -5 1 0 0 0 0 -5
题目5.
试求出Vandermonde 矩阵A=⎥⎥⎥⎥⎥
⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣
⎡111112
3
4234234
234234e
e e e d d d d c c c c b b b b
a a a a ,的行列式,
并以最简的形式显示结果。 【求解】该问题有两个知识点。一个构造是Vandermonde 矩阵,另一个是求矩阵的行列式。
前者可以利用书中编写的面向符号矩阵的vander()函数构造出Vandermonde 矩阵。需要用到V=vander(C)来调用。后者可以用MATLAB 的det()函数来求解,他会自动采用解析解法求出其行列式的值。需要注意运用det()的前提是符号矩阵,本题中A 已是符号矩阵,所以不用转换。最后,用simple()函数简化一下即可。
【解答】:
(1)构造矩阵:
输入如下语句:
>>syms a b c d e; A=vander([a b c d e])
按ENTER 键,显示如下: A=
[ a^4, a^3, a^2, a, 1] [ b^4, b^3, b^2, b, 1] [ c^4, c^3, c^2, c, 1] [ d^4, d^3, d^2, d, 1] [ e^4, e^3, e^2, e, 1]
(2)以最简单的形式输出行列式: 输入如下语句:
>>det(A),simple(ans) 按ENTER 键,显示如下: ans=
(c-d)*(b-d)*(b-c)*(a-d)*(a-c)*(a-b)*(-d+e)*(e-c)*(e-b)*(e-a)
15. 试求出线性代数方程组X ⎥⎥⎥⎥⎦
⎤
⎢⎢⎢
⎢⎣⎡62
46
55122317
7967=⎥⎦⎤⎢⎣⎡21301012,并验证解的正确性 【分析】:该题为线性方程的计算机求解问题。 需要考虑的是X=B*A -1,
在MATLAB 中,需要
调用inv(A)*B 函数,来得出方程的解。同时需要用到逆运算。
【解答】:
(1)输入如下语句:
>> A=[7,6,9,7;7,1,3,2;2,1,5,5;6,4,2,6];B=[2,1,0,1;0,3,1,2];A=A',B=B'; x=inv(A)*B,e1=norm(A*x-B),x1=inv(sym(A))*B,e2=norm(double(A*x1-B)) 语句运行后,显示如下: x =
-0.0057 0.4511 0.1034 -0.6207 -0.1609 -0.3678 0.2730 0.3204 e1 =
1.5879e-015 x1 =
[ -1/174, 157/348] [ 3/29, -18/29] [ -14/87, -32/87] [ 95/348, 223/696] e2 = 0
(2)对X 进行逆运算,输入以下语句:
>> x1=x1'; x1*A'
语句运行后,显示如下:
ans =
[ 2, 1, 0, 1] [ 0, 3, 1, 2]
二、实验心得
这次是第三次上高等应用数学问题的MA TLAB 求解课程。通过老师上课的细心讲解与演示,我对MA TLAB 又有了更深的了解。原来MATLAB 在线性代数问题矩阵问题中也可以用的如此灵活简便。
同时我还学到了很多MA TLAB 的应用。首先是矩阵的输入,我学会了如何用简单的函数语句直接输入零矩阵,幺矩阵,随机元素矩阵,对角元素矩阵,Hankel 矩阵,伴随矩阵等。其调用的语句虽然看似简单,但还是要注意细节。就拿对角元素矩阵说,调用语句A=diag(V,k)是生成主对角线上第k 条对角线为V 的矩阵,这里要深刻理解k 的含义,他可正可负,是对角线上第k 条对角线。同时我们还要灵活掌握向量与矩阵的两两转化,不是只掌握一个就可以了。
我还学到了矩阵分析的基本概念及求解函数,比如如何做出行列式,迹,秩,范数,特征多项式,逆矩阵,广义逆矩阵,特征值与特征向量等。以行列式为例,我会运用简单的d=det(A)函数来调用,直接求行列式。但是要注意细节的是我们练习的题目中,是Hilbert 矩阵,我们要用sym()函数把他符号化,再用det()调用。所以不符号化的话,就会遇到运行错误的问题。
我还会运用了矩阵的基本变换,知道了矩阵的正交分解,三角分解,对称矩阵的Cholesky 分解,一半矩阵的伴随分解,Jordan 变换等。我了解了线性代数方程对唯一解、无穷解、无解等问题的处理,矩阵方程的据算机求解等。就拿线性方程组的计算机求解来说,已AX=B 为例,其实很简单,只要输入A,B 矩阵,再运用X=inv(A)*B 函数就可以编写出了。
第八章 数据插值、函数逼近问题的计算机求解 一、实验内容:
1 用t e
t t y t
sin )(52-=生成一组较稀疏的数据,并用一维数据插值的方法对给出的数据进
行曲线拟合,并将结果与理论曲线相比较。 【分析】:该题为一维差值问题。该题可以利用函数interp1(),其调用格式为
y=interp1(x,y,x1,f 方法)。插值方法有很多,一般默认为可以选择’linear ’’线性插值,‘nearest ’对近点等值方法,’cubic ’三次Hermite 插值’spline ’ 三次分段样条插值。本题运用最精确的三次分段样条插值进行求解,并用理论曲线与拟合的直线共同显示在一起进行比较。
【解答】:
(1) 根据所给函数用MA TLAB 生成较稀疏的数据,输入如下语句: >>t=0:0.2:2;
y=t.^2.*exp(-5*t).*sin(t); plot(t,y,'o') 显示图片如下: