版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、解线性代数方程组迭代法的MATLAB图形用户界面设计 摘要:本文首先介绍了MATLAB软件的功能和特点以及MATLAB GUI的创建方式。然后叙述了迭代法的一般形式与收敛性定理、Jacobi迭代法、Gauss-Seidel迭代法、SOR方法、最速下降法、共轭梯度法。最后使用MATLAB软件结合迭代法的数学知识,设计出一个MATLAB GUI图形界面, 直观地解决迭代法解线性代数方程组的问题。 关键词:线性方程组;迭代法;MATLAB GUI;Jacobi迭代法;Gauss-Seidel迭代法MATLAB GUI design on iterative method of linear alge
2、braic equations Abstract:First, this paper describes the functions and characteristics of MATLAB software and the MATLAB GUI creation method. Second, some theories are described, such as:the general form of iterative method and the convergence theorem, the Jacobi iterative method, the Gauss-Seidel i
3、teration method, the SOR method, the steepest descent method,the conjugate gradient method. Finally, with the MATLAB software and the mathematical theory of iterative method,a MATLAB GUI graphical interface is designed, to directly solve the problem of iterative solution of linear algebraic equation
4、s. Keywords: Linear equation;Iterative method;MATLAB GUI;Jacobi iterative method;Gauss-Seidel iteration method目 录1 绪论11.1 背景11.2 意义12 MATLAB软件介绍 32.1 MATLAB软件概况32.2 MATLAB的主要特点32.3 MATLAB GUI介绍43 解线性代数方程组的迭代法63.1 迭代法的一般形式与收敛性定理63.1.1 迭代法的一般形式63.1.2 迭代法的收敛性63.2 Jacobi迭代法方法63.3 Gauss-Seidel迭代法83.4 逐次超
5、松驰方法(SOR方法)93.4.1 SOR公式93.4.2 SOR公式的矩阵形式103.4.3 SOR方法的计算表格113.4.4 SOR方法的收敛性113.5共轭梯度法123.5.1 最速下降法123.5.2 共轭梯度法123.5.3 共轭梯度法的收敛性134 MATLAB GUI在函解线性代数方程组迭代法中的应用144.1 解线性代数方程组迭代法的实际应用145 结论28致 谢29参考文献301 绪论1.1 背景随着社会的不断发展,在科技、教学、医学、建设、经济等各个领域中,很多问题常常归结为解线性方程组,有些问题的数学模型虽不直接像求解线性方程组,但其解法也可以变为解线性方程组。因此,大
6、量的科学技术和教学问题,最终就会不知不觉地变为解线性方程组。线性方程组的解法,最早出现在中国古代的刘徽编写的数学著作九章算术中,其中所述方法与现代的对方程组的增广矩阵进行初等行变换求解的方法相似,即高斯消元法。在西方,对线性方程组的研究开始于17 世纪后期,代表人物是莱布尼茨,他曾解出有两个未知量的线性方程组。18世纪前期克莱姆发表克莱姆法则,用于求解多未知量的线性方程组。18世纪后期,法国数学家贝祖对线性方程组进行了进一步的研究,得出了多元齐次线性方程组有非零解的条件是系数行列式等于零。时间来到19 世纪,方程组的增广矩阵和非增广矩阵这些概念的提出,以及证明了线性方程组有解的充分必要条件是系
7、数矩阵的秩与增广矩阵的秩相同,这些成果对现代方程组理论的研究起到很关键的作用。迭代法是解线性方程组的一种主要方法,特别是一些特殊的方程组。 MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将矩阵计算、数值分析、科学数据形象化以及数学建模和环境仿真等很多强大功能放在一个小巧的可视化界面中,MATLAB有矩阵运算、图像绘制、算法设计、用户界面创建、连接其他编程语言的程序等功能,主要应用于大型工程计算、信号处理与检测、机器控制设计、图像处理与分析、数学建模设计等领域 1 。1.2 意义本课题所涉及的数值计算和MATLAB的知识是我所学专业
8、应该掌握的,但也有一些超出我的能力之外,对我的挑战很大,不过正因为如此,这个课题的意义对我就更大了,它使我能更好的了解自己的不足和欠缺,以便我能现在改正。挑战越大,成就也就越大,我坚信我能把这个课题做的很好。利用数值计算中的迭代法解线性代数方程组,再用MATLAB编程求出解。其中数值计算的作用巨大。数值计算方法是研究求解数学问题(数学模型)近似解的方法、过程及其理论的一个数学分支。学习数值计算方法时,首先应掌握各种数值计算方法的基本原理和思想,学会运用各种方法的处理技巧,了解各种方法的优缺点,并会利用数学计算软件编程计算,求得数学问题的数值解 2 。MATLAB 将高性能的数值计算和可视化集成
9、在一起,并提供了大量的内置功能,从而被广泛地应用于科学计算、控制系统、教学、信息处理等领域的分析、仿真和设计工作。所以它的作用也很大。MATLAB图形用户界面设计,即MATLAB GUI设计能形象直观表示问题。如果你把你的程序变成GUI的话,那么别人不需要看你的算法也可以根据你的提示输入得到想要的结果。所以课题要求设计MATLAB图形用户界面。2 MATLAB软件介绍2.1 MATLAB软件概况MATLAB语言是一种用途非常广泛的工程语言,目前是国际上最优秀的科技应用软件之一。它具有的强大的科学计算能力、可扩展、跨平台、简单易学、形象生动的可视化界面和使用简单等一系列优点,在各行各业中发挥着巨
10、大的作用,成为了优秀的计算机设计和分析、算法设计和应用开发的卓越平台。特别是其附带的几十个面向不同领域的工具箱,使其应用范围覆盖了当今几乎所的工业领域,应用范围非常广泛。MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、可视化界面设计、数据分析、数值计算的程序设计和交互式环境开发,主要包括MATLAB和SIMULINK两大部分。它将矩阵计算、数值分析、科学数据形象化以及数学建模和环境仿真等很多强大功能放在一个小巧的可视化界面中,为工程建设、科学实验、金融投资、天文发现以及一些有关数值计算的科学研究提供了一种很好的解决方案,并在很大地方上超越了传统程序设计语言,成为了当今
11、社会最好的科学计算软件之一。MATLAB的产生是与数学历史的发展紧密联系在一起的。20世纪70年代左右,美国新墨西哥大学计算机科学系主任Cleve Moler为了让学生编程更轻松,用FORTRAN编写了最早的MATLAB。直到1984年,由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB软件推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成 3 。2.2 MATL
12、AB的主要特点 1. 用户使用简单 MATLAB语言结构简单、紧凑、灵活方便,函数丰富,语句效率高,得到结果快,用户编程时间短效率高,而且语法结构灵活,程序的自由度大容易理解。MATLAB不仅是一种语言,也是这种语言的开发软件。2编程效率高MATLAB是一种面向工程计算与科学研究的高级语言,允许使用数学形式的语言编写程序,与C、C+、java、C#等语言相比,更接近人们书写计算公式的思维方式,虽然没有这些语言的强大功能,但也具有结构化控制语句和某些面向对象编程能力,用MATLAB编写程序就像在草稿纸上写公式与求解问题,所以被称为演算纸式的科学算法语言,编程效率高,、形象生动,易学易用。3强大的
13、科学计算功能MATLAB的运算符很丰富,其数值计算能力非常强大、高效、简单、方便,在矩阵及数组运算中有不俗的表现,而且具有一定的智能,可以根据问题的不同,自动选取最好的求解方法,算法设计简单、可靠、成熟、运算速度快。4精美的可视化界面MATLAB具有强大的、交互式的二维及三维绘图功能,还有一系列的绘图函数,可实现曲面渲染、二维三维坐标系图、线框图、伪彩图、光源、等位图、图像显示、体积可视化等等,而且数据的高度可视化、易于表现,并具有较强的图形编辑和用户图形界面设计能力,可以使用GUI实现 。5丰富的功能MATLAB的内部核心函数有好几百个,而且其内容非常丰富,功能强大,同一函数,可以像C+一样
14、进行重载,即输入或输出参量数目不同就代表不同的涵义,从而使MATLAB的函数功能更加强大,且减少磁盘空间,使得MATLAB编写的M文件小巧、简短、高效、功能强大。6. 版本升级快 从1984年的MATLAB1.0到现在的MATLAB8.0已经经历了8个大型的版本升级,与时俱进,永远满足时代的需求。7可移植性好,跨平台,扩充能力强MATLAB的可移植性好,只要你的文件正确,基本上不用做任何修改就可在其他型号的计算机和操作系统的MATLAB软件上使用。此外,MATLAB的扩充能力极强,其本身丰富的库函数可随时调用,而且也可以随时调用用户自己设计的文件,用户可以随时扩充用自己的文件,增加了更强大的功
15、能,而且还可以利用C、C+等语言的资源,包括已经编好的C、C+语言程序或子程序。8. 简单易学,使用方便 MATLAB的编写过程简单,具有公式化的模板,能让一个什么都不懂的初学者快速掌握要点,编写和调试程序。此外MATLAB不需要编译器,只要一个MATLAB软件即可4 。2.3 MATLAB GUI介绍用户界面是指人机之间交互的工具和方法。如键盘、鼠标、显示器、跟踪球、音响、话筒都可成为与计算机交换信息的接口 5 。图形用户界面则是由窗口、鼠标、键盘、窗口控件、菜单、文字说明、图形等对象构成的一个用户界面。用户通过某种方法如鼠标或键盘激活这些图形对象,使计算机完成某项任务,比如实现计算结果、绘
16、制图片与检验答案等 6 。如果你所从做的有关数据分析、方程求解、计算结果可视化的工作比较少,那么一般不会涉及到GUI的制作。但是如果你想要向别人提供可视化的应用程序,想要进行某种技术和方法的演示,想要制作一个简单的功能强大的专用工具,那么图形用户界面是最好的选择。MATLAB的演示程序demo 是使用图形界面的最好范例。MATLAB的用户,在MATLAB软件中运行demo程序,打开那个图形界面后,只要使用鼠标和键盘进行操控,就可得到很多比原先更精彩的内容。跟C、C+这些高级编程语言一样,MATLAB也有自己的图形界面开发环境,而随着计算机硬件和软件技术的飞速发展,人与计算机的交互方式也发生的极
17、大的变化,从最早的命令行输入方式(例如DOS系统)成长到了现在的互方式图形界面,而现在很多大的应用软件都是在很精美的图形界面下运行的 7 。GUI也是一种很强大MATLAB功能,可以通过创建M文件来实现。除了使用M文件来创建GUI外,MATLAB还为用户开发图形界面提供一个简单好用的开发环境:MATLAB图形用户界面开发环境(MATLAB Graphical User Interface Development Environment,GUIDE)。其主要是一个用于可视化界面设计的软件功能,它将有关GUI的功能都集合起来,同时给出界面外观、属性和响应方式的设置方法。通过使用MATLAB图形用户
18、界面开发环境创建GUI后,可以将设计好的GUI界面保存为一个FIG文件,同时还生成对应的M 文件。这个M文件里包含了GUI核心代码和可视化界面的布局代码。使用GUIDE创建GUI执行效率非常高,具有很强大的交互式的功能,还能生成特定的GUI文件供其他人使用。3 解线性代数方程组的迭代法3.1 迭代法的一般形式与收敛性定理 3.1.1 迭代法的一般形式考虑求解线性代数方程组 (3.1)为采用迭代法求解,首先要将方程组(3.1)改写成等价的形式 (3.2) 其中,为已知变量,代表未知向量。给定初始近似向量,定义向量序列 (3.3)称为迭代序列,并称为迭代矩阵。如果当时有极限,设为,则在等式(3.3
19、)两端取极限可得 (3.4)此式表明迭代序列的极限恰为方程组(3.1)的解。因此,如果迭代序列收敛,则当充分大时,可将取作方程组的近似解 8 。3.1.2 迭代法的收敛性 关于迭代法的收敛的基本定理。 定理 迭代法(3.3)式对任何初始近似均收敛的充分必要条件是迭代矩阵的谱半径。3.2 Jacobi迭代法方法设设阶非奇异矩阵的主对角元全不为O记 是非奇异对角阵作的一个分裂: (3.5)得到迭代格式 (3.6)这种逐次逼近法称为Jacobi迭代法,简称为J-迭代法其迭代矩阵记为,右端向量记为 9 。 把A记为 ,其中是严格下三角矩阵,元素为 ,是严格上三角矩阵,元素为 。这时, (37)即 (3
20、.8) 记 ,Jacobi迭代格式为 (3.9)对照等号两边,得到计算 的公式为 , (3.10)或 , (3.11)3.3 Gauss-Seidel迭代法对Jacobi迭代法进行分析可以发现,在利用Jacobi迭代法,即 (3.12)计算 时, 均已经计算出。如果迭代序列是收敛的,那么比更接近于 。如果在Jacobi迭代法将用代替,那么可以获得更好的迭代效果和收敛速度 10 。 假如迭代是收敛的,利用带入方程组的第一个方程中,计算得到,然后用带入的第二个方程中得到,在利用计算出,如此下去,直到计算出后,用计算得到,本次得到结束。以上过程用数学表达式表示应为 (3.13)具体为 (3.14)这
21、样做的好处是显而易见的。首先,在计算时充分利用了已经计算出的值;其次不同存储两个向量和,而只需要对的分量一个一个地逐步替代就可以了 11 。(3.13)或(3.14)称为Gauss-Seidel迭代法。对于(3.13)式,可以用矩阵形式表示为 (3.15)其中,D,L,U如前所述,那么 (3.16)移项整理,得 (3.17)记 (3.18)那么(3.15)可写为 (3.19)这里,由于D-L是一个下三角阵,其对角元素恰为,从而D-L必然是可逆的。因此,如果 或者 成立,则Gauss-Seidel必然收敛。3.4 逐次超松驰方法(SOR方法)3.4.1 SOR公式 SOR公式又称为加速的Gaus
22、sSeidel公式,分两步构成:(1)迭代步,即用GaussSeidel公式给出预报值 。 (3.20)(2)加速步,即将当前迭代值与预报值线性组合得校正值。 (3.21)其中 称为松弛因子。 合并以上两式得 (3.22)或者写成 (3.23) 我们称式(3.22)或者式(3.23)为SOR公式;当时称为松弛公式;当时,称为超松驰公式;特别地,当时,则为GaussSeidel公式 12 。3.4.2 SOR公式的矩阵形式将上式中增量 改写成 (3.24)由此得向量的表达式 (3.25)据式(3.23)可得 (3.26)称上式为SOR公式的异步矩阵形式 为便于判别SOR公式的收敛性,我们还可将式
23、(3.23)改写成 (3.27)将代入上式并化简得 (3.28)称上式为SOR公式的同步矩阵形式3.4.3 SOR方法的计算表格根据式(3.23)作迭代计算,其计算格式见表1 表3.1 SOR方法的计算表 与GaussStidel迭代法的计算表一样,在上述表格的第二栏中我们列出矩阵 ,而没有列出,但在每一步迭代中要按照分量逐个替换的方法进行计算3.4.4 SOR方法的收敛性 讨论SOR方法的收敛性,宜采用同步公式。鉴于该迭代公式是一般的迭代公式 的特例,因此,判别收敛性的充要条件都适用于SOR迭代式但是,迭代矩阵太复杂,使定理都不太方便下面我们针对迭代式(2.24)介绍一些实用的判别收敛性的方
24、法定理(必要条件) 设,式(3.23)对收敛的必要条件是 定理(充分条件) 设且,则SOR迭代式(3.23)收敛(证明略) 推论 设,则Gauss-Seidel迭代法收敛。实事上,只要在定理令,即得此推论。3.5共轭梯度法3.5.1 最速下降法 最速下降法主要利用正定系数矩阵的性质,结合一定的数值计算方法寻找解。 基本思想:给定一个初始近似解出发,来求的极小值点。经过计算可以发现是在点下降速度最快的方向,可以联想到,沿着的方向,则有。根据基本思想得到 (3.29)通常称迭代格式(3.29)为最速下降法。对于给定的精度限制,迭代到为止 13 。 最速下降方向有很多的不足,迭代效率也不高。3.5.
25、2 共轭梯度法 共轭梯度法是最速下降法的一种改进,减少了迭代次数从而提高了程序运行效率。基本思想:按最速下降法从出发得到新的近似,是直线被椭球面截取线段的中点。根据基本思想得到 (3.30)迭代格式(3.30)称为共轭梯度法,从出发 14 。3.5.3 共轭梯度法的收敛性共轭梯度法产生的向量序列和有以下性质:(1)(2)(3)(4)由于维向量空间中相互直交的向量至少个,由性质(1)知,必存在使得,即。这就是说,如果不考虑舍入误差,那么共轭梯度法只需有限步便可获得精确解 15 。4 MATLAB GUI在函解线性代数方程组迭代法中的应用 用MATLAB GUI可以非常完美地解决方程组求解问题,并
26、且可以直观地表示求解结果以及迭代的中间过程。4.1 解线性代数方程组迭代法的实际应用例题:用Jacobi迭代法、Gauss-Seidel迭代法、SOR方法、最速下降法、共轭梯度法分别求解下面的方程组要求精度,取最大迭代次数。 解:打开GUI设计工具,选择空白模块, 在布局编辑器中布置空间:(1) 建立6个编辑文本框和一个下拉菜单,用于输入方程以及输出结果。(2) 建立1个下拉菜单,用于选择迭代方法。(3)建立7个静态文本框,标注相应编辑文本框的提示。(4)建立1个按钮,用于求出迭代结果。同时设置计图形如下所示,保存为my_gui.fig文件设置控件相关属性(1) 设置下拉菜单的string为雅
27、克比迭代法、高斯-赛德尔迭代法、SOR方法、最速下降法、共轭梯度法用于选择迭代方法。(2) 设置方程系数矩阵和结果的静态文本框下方的编辑文本框的Max为2,用于换行显示。(3) 静态文本框和编辑文本框的HorizontalAlignment都设置为”left”。打开my_gui.m文件添加如下程序代码function varargout = my_gui(varargin)% UNTITLED M-file for untitled.fig% UNTITLED, by itself, creates a new UNTITLED or raises the existing% singleto
28、n*.% H = UNTITLED returns the handle to a new UNTITLED or the handle to% the existing singleton*.% UNTITLED('CALLBACK',hObject,eventData,handles,.) calls the local% function named CALLBACK in UNTITLED.M with the given input arguments.% UNTITLED('Property','Value',.) creates a
29、 new UNTITLED or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before untitled_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to untitled_OpeningFcn via varar
30、gin.% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help untitled% Last Modified by GUIDE v2.5 14-Feb-2014
31、09:27:12% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', untitled_OpeningFcn, . 'gui_OutputFcn', untitled_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callb
32、ack', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before untitled is made visible.func
33、tion untitled_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments t
34、o untitled (see VARARGIN)% Choose default command line output for untitledhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command lin
35、e.function varargout = untitled_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get defaul
36、t command line output from handles structurevarargout1 = handles.output;% - Executes on button press in checkbox1.function checkbox1_Callback(hObject, eventdata, handles)% hObject handle to checkbox1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with
37、 handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of checkbox1function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and use
38、r data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String') returns contents of edit1 as a double% - Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject
39、 handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,'BackgroundColor',&
40、#39;white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles an
41、d user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String') returns contents of edit2 as a double% - Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hO
42、bject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,'BackgroundColor
43、39;,'white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');end% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in
44、a future version of MATLAB% handles structure with handles and user data (see GUIDATA)A=str2num(get(handles.edit1,'string');b=str2num(get(handles.edit5,'string')'val=get(handles.popupmenu2,'Value');str1=get(handles.popupmenu2,'String');eps=str2num(get(handles.edit
45、3,'string');N=str2num(get(handles.edit4,'string');str=;switch str1val; case '雅克比迭代法' D=diag(diag(A); B=inv(D)*(D-A); f=inv(D)*b; K=0; x0=zeros(size(b); while 1 x1=B*x0+f; str=str,'第',num2str(K),'次迭代结果',num2str(x1'),10; if norm(x1-x0,inf)<eps str=str,
46、9;满足迭代精度' break; end if K>=N str=str,'超过迭代次数 未满足迭代要求' break; end x0=x1; K=K+1; end case '高斯-赛德尔迭代法' D=diag(diag(A); L=-tril(A,-1); U=-triu(A,1); B=inv(D-L)*U; f=inv(D-L)*b; K=1; x0=inv(D)*b; str=str,'第0次迭代结果 ',num2str(x0'),10; while 1 x1=B*x0+f; str=str,'第'
47、,num2str(K),'次迭代结果 ',num2str(x1'),10; if norm(x1-x0,inf)<eps str=str,'满足迭代精度' break end if K>=N str=str,'超过迭代次数 未满足迭代要求' break; end K=K+1; x0=x1; end case 'SOR方法' w=str2num(get(handles.edit6,'string'); D=diag(diag(A); L=-tril(A,-1); U=-triu(A,1); mv1
48、=inv(D-w*L); mv2=(1-w)*D+w*U; B=mv1*mv2; f=w*mv1*b; x0=inv(D)*b; K=1; str=str,'第0次迭代结果 ',num2str(x0'),10; while 1 x1=B*x0+f; str=str,'第',num2str(K),'次迭代结果 ',num2str(x1'),10; if norm(x1-x0,inf)<eps str=str,'满足迭代精度' break end if K>=N str=str,'超过迭代次数 未满
49、足迭代要求' break; end K=K+1; x0=x1; end case '最速下降法' x0=zeros(size(b); r0=b-A*zeros(size(b); t0=(r0'*r0)*inv(r0'*A*r0); K=1; str=str,'第0次迭代结果 ',num2str(x0'),10; while 1 x1=x0+t0*r0; t1=(r0'*r0)*inv(r0'*A*r0); r1=b-A*x1; str=str,'第',num2str(K),'次迭代结果
50、39;,num2str(x1'),10; if norm(x1-x0,inf)<eps str=str,'满足迭代精度' break end if K>=N str=str,'超过迭代次数' break; end K=K+1; x0=x1; t0=t1; r0=r1; end case '共轭梯度法' x0=zeros(size(b); p0=b-A*zeros(size(b); r0=p0; K=1; str=str,'第0次迭代结果 ',num2str(x0'),10; while 1 ak=(p0'*r0)*inv(p0'*A*p0); x1=x0+ak*p0; r1=r0-ak*A*p0; bk=(p0'*A*r1)*inv(p0'*A*p0); p1=r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青海省海西蒙古族藏族自治州单招职业倾向性测试题库含答案详解(模拟题)
- 2025年上饶市消防协会招聘备考题库完整参考答案详解
- 2026年驻马店幼儿师范高等专科学校单招职业倾向性测试题库带答案详解(完整版)
- 2026年闽西职业技术学院单招职业倾向性测试题库含答案详解(综合题)
- 2026云南曲靖市陆良县人力资源和社会保障局招聘公益性岗位3人考试备考试题及答案解析
- 2026年青海高等职业技术学院单招职业适应性测试题库含答案详解(新)
- 2026年陕西学前师范学院单招职业技能考试题库带答案详解(能力提升)
- 2025年招聘丨西南计算机有限责任公司招聘备考题库及参考答案详解1套
- 2025年湖南投资集团股份有限公司绕城公路西南段分公司招聘12人备考题库参考答案详解
- 2026年阳光学院单招职业技能考试题库附答案详解(完整版)
- 煤矿改扩建项目审批办理流程指南
- 2022年宜春幼儿师范高等专科学校单招笔试职业技能考试试题及答案解析
- GB/T 5286-2001螺栓、螺钉和螺母用平垫圈总方案
- GB/T 41093-2021机床安全车床
- GB/T 25102.1-2010电声学助听器第1部分:具有感应拾音线圈输入的助听器
- 医院运行与医疗业务指标数据统计收集管理规定
- 【高中地理课件】城市的辐射功能 课件 2022-2023学年高二地理人教版(2019)选择性必修二
- 测量管理体系记录表
- 供应商资质能力核实承诺书
- DB5301∕T 23-2019 园林绿化工程验收规范
- 导航学 第1章 导航系统概述
评论
0/150
提交评论