超松弛迭代法解线性方程组c语言,超松弛迭代法解线性方程组.doc

PAGE

PAGE 2

姓名:___________________________

设计题目:超松弛迭代法解线性方程组

专业:

摘要

本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变量超松弛迭代法的理论基础对方程组求解。

首先,本文以微分方程边值问题为例,导出了离散化后线性方程组即稀疏线性方程组,转化对稀疏线性方程组求解问题。其次,用超松弛( SOR) 迭代法编写matlab程序,对产生的稀疏线性方程组进行迭代法求解。然后,分别改变松弛因子ω和分段数n的值,分析其收敛性和收敛速度,做出各个方面的分析和比较得到相关结论。最后,将超松弛迭代算法在计算机上运用matlab语言实现, 得出了一组与精确解较接近的数值解,并画图比较,验证逐次超松弛( SOR) 迭代法的精确性。

关键词 : 稀疏线性方程组 逐次超松弛迭代法 松弛因子

matlab编程

问题提出

考虑两点边值问题

容易知道它的精确解为

为了把微分方程离散,把区间等分,令,,得到差分方程

简化为

从而离散后得到的线性方程组的系数矩阵为

对,,,分别用、和的超松弛迭代法求解线性方程组,要求有4位有效数字,然后比较与精确解的误差,探讨使超松弛迭代法收敛较快的取值,对结果进行分析。改变,讨论同样问题。

二、超松弛迭代法产生的背景

对从实际问题中得到维数相当大的线性代数方程组的求解仍然十分困难, 以至使人们不能在允许的时间内用直接方法得到解, 因此, 客观上要求用新的方法来解决大维数方程组的求解问题。

现有大多数迭代法不是对各类线性方程组都有收敛性, 在解题时, 要对原方程组矩阵作一根本的变换, 从而可能使条件数变坏, 也可能破坏了变换前后方程组的等价性, 以及丧失使原方程组的对称性等。探求新的有效的解题方法依然是迫切的任务。逐次超松弛(Successive Over Relaxation)迭代法是在高斯-赛德尔(GS)迭代法基础上为提高收敛速度,采用加权平均而得到的新算法。

在求解过程中由于线性方程组的系数矩阵维数较大, 采用计算机编写算法来求解, 从而实现了对解析模型的计算机数值逼近的计算方法#本论文以逐次超松弛迭代法为主要的求解方法。

三、超松弛迭代法的理论基础

逐次超松弛迭代法

逐次超松弛(Successive Over Relaxation)迭代法,简称SOR迭代法,它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法,设解方程(7.1.3)的GS法记为      (1)再由与加权平均得    这里ω>0称为松弛参数,将(1)代入则得     (2)该法称为SOR迭代法,[WTBX]ω>0称为松弛因子,当ω=1时(2)式即为高斯-赛德尔迭代法,简记GS法,将(2)写成矩阵形式,则得    即  于是得SOR迭代的矩阵表示        (3)其中        (4)    分解后,有.

逐次超松弛迭代法的收敛性

根据迭代法收敛性定理,SOR法收敛的充分必要条件为,收敛的充分条件为,但要计算比较复杂,通常都不用此结论,而直接根据方程组的系数矩阵A判断SOR迭代收敛性,下面先给出收敛必要条件.

定理1 设,则解方程的SOR迭代法收敛的必要条件是0<ω<2.

该定理为SOR迭代法收敛的必要条件。

定理 2 若对称正定,且0<ω<2,则解Ax=b的SOR迭代法对迭代收敛.

对于SOR迭代法,松弛因子的选择对收敛速度影响较大,关于最优松弛因子研究较为复杂,且已有不少理论结果.下面只给出一种简单且便于使用的结论。

定理3 设为对称正定的三对角矩阵,是解方程的J法迭代矩阵,若,记,则SOR法的最优松弛因子为          (5)且      (6)  根据定理,,如图1所示.由(6)可知,当ω=1,时,收敛速度为     .  说明GS法比J法快一倍.

图1

定理4 设,如果:

A为严格对角占优矩阵;(2)0

则解的SOR迭代法收敛。

实验内容

1.自定义函数 sor(A, b, nm, e, w),以实现SOR方法求解线性方程组AX=B,其中

A——系数矩阵;

b——常数列向量;

w——松弛因子;

nm——迭代的最大次数

e——达到的精度上限

由离散后的差分方程:

得到的线性方程组的系数矩阵为

常数列向量b=

其中,,,,则有。A为(aij)200*200型矩阵,b为(bij)200*1型矩阵。

在本次试验中,由于所提供数据较小,当最大迭代次数nm较小时,在nm迭代次数范围内,不能判断该超松弛迭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Meidapipe 3D手势姿态跟踪算法,手机端实时检测 ,多个手势同时捕捉

Ubuntu安装MediaPipe 1. github下载Meidapipe代码2. [安装Bazel](https://docs.bazel.build/versions/master/install-ubuntu.html)3. Install OpenCV and FFmpeg4. 安装在Linux desktop运行需要的工具5. 运行Hello World desktop example安装Android SDK和NDK 1. 安装[Android…

android新建工程横屏,华为MatePad Pro构建的安卓平板横屏生态有何不同?来看看

在过去很多年中,Android 平板或者说 Android大屏设备一直受限于 Android生态的限制,无法发挥出本应具备的大屏使用体验,也正是因为这个原因,Android平板电脑一直被当做娱乐设备。在去年11月25日,华为正式发布了主打生产…

Flutter笔记:Web支持原理与实践

Flutter笔记 Web支持原理与实践 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com CSDN:https://blog.csdn.net/qq_28550263/article/details/135037756 华为开发者社区…

设置MAC 下 Vim 语法高亮显示

一:终端进入 cd /usr/share/vim/ 二: sudo vim vimrc 三:添加 syntax enablesyntax on 四:保存退出 转载于:https://www.cnblogs.com/cocoajin/p/3284604.html

外部服务发现之 ingress(一) traefik 的安装使用

Ingress其实就是从 kuberenets 集群外部访问集群的一个入口,将外部的请求转发到集群内不同的 Service 上,其实就相当于 nginx、haproxy 等负载均衡代理服务器,有的同学可能觉得我们直接使用 nginx 就实现了,但是只使用 nginx 这种…

ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案

前言 ASP.NET MVC 3在没有安装MVC3的环境的服务器上运行,就会报错,缺少引用,本文就为mvc3发布报错的解决方案。 解决方案 思路:提供ASP.NET MVC 3运行所需的的dll即可解决报错问题。 1、项目添加ASP.NET MVC 3的引用&#xff…

android 切换字体崩溃,androidx - 在Android 10 / Android Q上使用捆绑的ttf字体时崩溃 - 堆栈内存溢出...

将我的Android应用的目标级别从28更新为29(Android 10)后,该应用在Pixel 3(使用Android 10)上崩溃了。使用的版本Android Gradle插件3.5.0摇篮5.5.1问题:这是一个已知问题吗?细节崩溃发生在使用不同标签(TextView,androidx.appcom…

vsftp socket 报错

FTP显示数据 Socket 错误: 连接超时解决数据Socket错误及连接后为什么列表错误的解决方法 [右] 正打开数据连接 IP: 192.168.1 端口: 2226[右] 数据 Socket 错误: 连接被拒[右] 列表错误[右] PASV[右] 227 Entering Passive Mode (192,168,1,1,8,183)[右] 正打开数据连接 IP: 1…

Android Button 单击事件

方法一&#xff1a;在XML文件中指定 单击事件函数 <Button android:id"id/button1" android:layout_width"120dip" android:layout_height"wrap_content" android:layout_alignParentLeft"…

Python破解滑块验证码算法,完美避开人机识别

| 完美是不可能的&#xff0c;加个震惊&#xff01;Python破解BiliBili滑块验证码&#xff0c;完美避开人机识别&#xff0c;可以有 准备工作 B站登录页 https://passport.bilibili.com/loginpython3pip install selenium &#xff08;webdriver框架&#xff09;pip install P…

php 分页类

2019独角兽企业重金招聘Python工程师标准>>> 分页公式&#xff1a;页数&#xff08;总记录数-1&#xff09;/每页显示记录数1&#xff1b; 借助这个公式&#xff0c;实现以下分页类&#xff1b; <?php class Fpage{ private $total; //数据表中总记录数 …

Docker中的Nginx搭建HTTPS环境

准备 1.已安装好docker环境 2.申请好域名 3.SSL证书&#xff08;可选&#xff09; 一、安装Nginx docker pull nginx 查看docker镜像&#xff1a; docker images 二、进行配置 建目录用于存放nginx配置文件、证书文件 mkdir /opt/docker/nginx/conf.d -p touch /opt/docke…

Android的引用jar包

先来个基础的&#xff0c;在eclips里在工程名上右键->build path->contigure bud path->java build path里有个几个选项add external jars 增加工程外部的包add jars 增加工程内包add library 增加一个库add class folder 增加一个类文件夹下面着重介绍add libra…

Android木马分析实验,Android木马简介与分析

本文介绍基于Android的手机恶意软件&#xff0c;是一个基础性的介绍&#xff0c;给新入门的人提供一个分析和工具指引。要分析的木马是一个2013年的syssecApp.apk&#xff0c;这个木马的分析能对Android恶意软件有个大概了解。基础&#xff1a;1 –Android应用基础Android是goo…

Visual Studio 2012资源管理器里单击打开改为双击打开文件

Visual Studio 2012资源管理器里&#xff0c;单击打开文件改为双击打开文件&#xff0c;如图&#xff1a;

监控服务器容量 MOM

http://xxglx.jxcfs.com/net/zyk/htmlfiles/practice/practice00097.htm转载于:https://www.cnblogs.com/Kazaf/p/3286409.html

解决VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法

在启用了Credential Guard或Device Guard的Windows 10主机上启动12.5版之前的VMware Workstation中的虚拟机时&#xff0c;将显示蓝色诊断屏幕&#xff08;BSOD&#xff09;。 会看到类似于以下内容的错误&#xff1a; VMware Workstation和Device / Credential Guard不兼容。禁…

android怎么升级版本5.0,一加手机怎么升级安卓5.0系统

谷歌今天正式发布了最新的安卓5.0正式版&#xff0c;作为一次非常大的系统升级&#xff0c;安卓5.0带来了非常多明显的升级&#xff0c;体验上相比安卓4.4要精进不少。在众多手机纷纷向Android 5.0发起冲击之时&#xff0c;一加手机官方论坛也放出了首个Android 5.0固件&#x…

Asp.Net使用Yahoo.Yui.Compressor.dll压缩Js|Css

网上压缩css和js工具很多&#xff0c;但在我们的系统中总有特殊的地方。也许你会觉得用第三方的压缩工具很麻烦。我就遇到了这样问题&#xff0c;我不想在本地压缩,只想更新到服务器上去压缩&#xff0c;服务器压缩也不用备份之类的操作。于是我就想着自己实现压缩工具。 初步…

Android 自动化测试——Monkey测试

2019独角兽企业重金招聘Python工程师标准>>> 1、Monkey测试简介 Monkey主要应用在压力和可靠性测试上&#xff0c;运行该命令可以随机地向目标程序发送各种模拟键盘事件流&#xff0c;并且可以自己定义发送的次数&#xff0c;以此观察被测应用程序的稳定性和可靠性…