没有合适的资源?快使用搜索试试~ 我知道了~
西南交大MATLAB上机题解.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2022-11-04
10:05:30
上传
评论
收藏 693KB DOCX 举报
温馨提示
试读
25页
...
资源推荐
资源详情
资源评论
.word 格式,
序言
根据实习内容及自身学习情况 ,文章采用的计算软件是 MATLAB。通过在
该软件 M 文件中编写相应程序来解决实习内容中的问题。
MATLAB 软件的发展已经 30 多年,过程中不断的版本升级和功能完善,使
得该软件具有非常强大的编程和计算能力 ,也使其成为当前世界上应用最普遍
的计算软件之一。作为一款不断发展的计算软件,MATLAB 具有 6 个非常突出
的特点:(1)友好的工作平台和编程环境 ;(2)简单易用的编程语言 ;(3)
强大的科学计算数据处理能力 ;(4)出色的图形处理功能;(5)应用广泛的
模块集合工具箱;(6)实用的程序接口和发布平台。这些特点保证了 MATLAB
软件能够长期在工程界和学术界得到应用。
科学计算长期以来都是 MATLAB 软件擅长的部分。MATLAB 的科学计算环
境不仅提供了大量用于计算的函数库 、工具箱,而且还提供了功能强大的计算
绘图能力,其主要的优点有以下几个方面:
(1)MATLAB 几乎集成了当前所有科学研究领域和工程计算领域的算法,
使得软件的科学计算能力非常的强大 ,同时该软件默认的计算精度是双精度 ,
保证了计算结果的高准确性。
(2)MATLAB 将高性能的数值计算和可视化集成在一起,同时提高大量的
内置函数和开放的程序和数据接口 ,使得该软件能够在科学计算 、控制系统与
信息处理等领域的分析、仿真和设计大展身手。
(3)MATLAB 包含各种能够进行常规运算的工具箱,同时具有编程计算功
能。
(4)MATLAB 能够将计算的结果绘制成二维和三维图形,增强了计算结果
的可视化程度。
(5)MATLAB 的编程语言是一种解释执行的脚本语言,简单易学。
文章采用 MATLAB 软件完成数值分析的上机实习时基于以下几个方面的考
虑:
(1)前期对MATLAB软件有一定程度的了解,能够利用该软件做一些简单
的矩阵计算。
(2)MATLAB 的编程语言和 C++的编程语言有很多相通的地方,而本科
时候学过 C++编程,对一些基础的编程掌握比较好,容易实现 MATLAB 编程计
算。
(3)MATLAB 软件应用非常的广泛,作为一个工科生,非常有必要掌握该
,
专业.专注
.
.word 格式,
软件的一些使用功能。
第一题
写出对一般的线性方程组通用的Gauss消元, Gauss-Seidel迭代程序。并以下面的线性
方程组为例进行计算,讨论所得到的计算结果是否与理论一致。
6 2 1
3
(1)
1 4 2 x
2
3 1 4
4
1 0.8 0.8
3
(2)
0.8 1 0.8 x 2
0.8 0.8 1
1
1 3
4
(3)
x
7 1
6
1. Gauss 消元法:
此法是将待求解的线性代数方程组中各个参数表中成对应的矩阵和向量 ,
对矩阵进行有目的的消元 ,使原来的矩阵经过消元变成一个上三角矩阵 ,以此
求得方程组的最后一个方程的解 ,然后从后往前回代 ,逐步求得各个未知数的
解。一般线性方程组通用的 Gauss 消元法的迭代程序见附录一。题例中的求解
方式是首先在 MATLAB 软件中编写 M 文件,保存运行。然后在 MATLAB 的
Command Window 中输入对应的矩阵和向量,进行求解。
题目 1 在 Command Window 中的程序:
a=[6,2,-1;1,4,-2;-3,1,4];
b=[-3;2;4];
x=Gauss(a,b)
运行结果:
x=[-0.7273;0.8081;0.2525]
题目 2 在 Command Window 中的程序:
a=[1,0.8,0.8;0.8,1,0.8;0.8,0.8,1];
b=[3;2;1];
,
专业.专注
.
.word 格式,
x=Gauss (a,b)
运行结果:
x=[5.7692;0.7692;-4.2308]
题目 3 在 Command Window 中的程序:
a=[1,3;-7,1];
b=[4;6];
x=Gauss (a,b)
运行结果:
x=[-0.6364;1.5455]
2. Gauss-Seidel 迭代法
Gauss-Seidel 迭代算法类似 Jacobi 迭代算法,Jacobi 迭代算法的一般迭代
格式为:
1
n
x [b
a x ]
(k)
(i 1,2,..n., )
(k1)
式(1)
a
i
i
ij
j
j1, ji
ii
在 Jacobi 迭代算法收敛时,式(1)中第一个方程计算得到的
马上投
x
(k 1)
1
,
入到第二方程中使用,把前两个方程已经得到的
马上投入到第三个
x
(k 1)
x
(k 1)
1
2
方 程 中 使 用 , 如 此 循 环 , 通 过 这 种 计 算 线 性 方 程 组 解 的 迭 代 格 式 称 为
Gauss-Seidel 迭代,其迭代格式为:
1
i1
n
x [b a x a x ] (i
1,2,..n., )
式(2)
(k1)
(k1)
(k)
ij j
a
ii
i
i
ij j
j1
ji+1
矩阵形式如式(3)所示:
D (b Lx
Ux )
(k )
式(3)
x
(k+1)
1
(k 1)
,得到的结果如式(4)所示:
(k 1)
解得
x
x
(k 1)
(- D+L)Ux +(D+L) b 式(4)
-1
(k )
1
一般线性方程组通用的 Gauss-Seidel 迭代法的迭代程序见附录二。题例中
的求解方式是首先在 MATLAB软件中编写 M 文件,保存运行。然后在 MATLAB
的 Command Window 中输入对应的矩阵和向量,进行求解。
,
专业.专注
.
.word 格式,
由于 Gauss-Seidel 迭代法计算时要首先考虑迭代收敛与否的问题,所以在
M 文件中,通过语言控制,首先对求解的线性方程组的矩阵进行相关计算,得
到迭代阵 B 的谱半径值,如果谱半径值 R<1,则进行 Gauss-Seidel 迭代,否则
不进行迭代。
题目 1 在 Command Window 中的程序:
A=[6,2,-1;1,4,-2;-3,1,4];
b=[-3;2;4];
x0=[0;0;0];
x=GaussSeidel(A,b,x0)
经过计算,得到题目 1 的迭代阵 B 的谱半径 R=0.3536<1,所以能够得到收
敛解。经过 41 次迭代后,得到该线性方程组的解为:
x=[-0.7273;0.8081;0.2525]
题目 2 在 Command Window 中的程序:
A=[1,0.8,0.8;0.8,1,0.8;0.8,0.8,1];
b=[3;2;1];
x0=[0;0;0];
x=GaussSeidel(A,b,x0)
经过计算,得到题目 2 的迭代阵 B 的谱半径 R=0.7155<1,所以能够得到收
敛解。经过 12 次迭代后,得到该线性方程组的解为:
x=[5.7692;0.7692;-4.2308]
题目 3 在 Command Window 中的程序:
A=[1,3;-7,1];
b=[4;6];
x0=[0;0];
x=GaussSeidel(A,b,x0)
经过计算,得到题目 3 的迭代阵 B 的谱半径 R=21>1,所以该线性方程组不
能得到用 Gauss-Seidel 迭代方法求得收敛解。
,
专业.专注
.
.word 格式,
通过使用上面三个例题求解的过程发现,在 MATLAB 中编写的 M 文件能够
很好地求解线性方程组,Gauss 消元法能够得到上面三个例题的全部收敛解 ,
而 Gauss-Seidel 虽然无法求解到题目 3 的收敛解,但是整个 M 文件程序的使用
性能还是非常的不错,能够真实反映出线性方程组系数矩阵内在的一些性质。
,
专业.专注
.
剩余24页未读,继续阅读
资源评论
不吃鸳鸯锅
- 粉丝: 8299
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功