问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

怎样用高斯-赛德尔迭代法求解矩阵方程组

发布网友 发布时间:2022-05-11 21:25

我来回答

1个回答

热心网友 时间:2023-10-21 03:21

// Seidel.h: interface for the CSeidel class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SEIDEL_H__35754D65_C3B8_4814_B9D7_8DE3BA72EFF3__INCLUDED_)
#define AFX_SEIDEL_H__35754D65_C3B8_4814_B9D7_8DE3BA72EFF3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//Seidel算法
//方法取自《计算方法引论》(第二版)徐萃薇、孙绳武著 高等教育出版社 第187页
//Matrix--系数矩阵,Y--常数项,X0--初始值,dimension--方程的阶数,error--误差;
//count--计算次数,达到次数即使不满足精度也返回积分值
//计算结果在X0中。
class CSeidel
{
public:
static bool Seidel(double *Matrix, double *Y, double *X0, int dimension, double error, int count);
CSeidel();
virtual ~CSeidel();

};

#endif // !defined(AFX_SEIDEL_H__35754D65_C3B8_4814_B9D7_8DE3BA72EFF3__INCLUDED_)

// Seidel.cpp: implementation of the CSeidel class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//#include "NumericalMethods.h"
#include "Seidel.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSeidel::CSeidel()
{

}

CSeidel::~CSeidel()
{

}
//Seidel算法
//方法取自《计算方法引论》(第二版)徐萃薇、孙绳武著 高等教育出版社 第187页
//Matrix--系数矩阵,Y--常数项,X0--初始值,dimension--方程的阶数,error--误差;
//count--计算次数,达到次数即使不满足精度也返回积分值
//计算结果在X0中。
#define Matrix(row,col) (*(Matrix+(row)*dimension+col))

bool CSeidel::Seidel(double *Matrix, double *Y, double *X0, int dimension, double error, int count)
{
int i,j,k=1;
double *X=new double[dimension];
double sum;

do
{
sum=0.0f;
for(i=1;i<dimension;i++)
sum+=Matrix(0,i)*X0[i];
X[0]=(Y[0]-sum)/Matrix(0,0);
for(i=1;i<dimension-1;i++)
{
sum=0.0f;
for(j=0;j<dimension;j++)
sum+=(j==i?0:(j<i?Matrix(i,j)*X[j]:Matrix(i,j)*X0[j]));
X[i]=(Y[i]-sum)/Matrix(i,i);
}
sum=0.0f;
for(i=0;i<dimension-1;i++)
sum+=Matrix(dimension-1,i)*X[i];
X[dimension-1]=(Y[dimension-1]-sum)/Matrix(dimension-1,dimension-1);
sum=0.0f;
for(i=0;i<dimension;i++)//计算误差的范数,这里使用欧氏范数
sum+=(X[i]-X0[i])*(X[i]-X0[i]);
for(i=0;i<dimension;i++)
X0[i]=X[i];
if(sum<error*error)
{
delete[] X;
return true;
}
if(k++>count)
{
delete[] X;
return false;
}
}while(true);
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
上海大学建筑系录取分数线是多少? 上海大学09年法硕考试录取分数线是多少? 什么品牌的男生卸妆产品值得入手? 求下图的剪力方程和弯矩方程,作剪力图和弯矩图,并求最大弯矩。求... 德州哪个县区最富 搜狗输入栏不能显示是为什么? 石璜镇历史演变 ...突突的声音,排气管还冒黑烟,有时走也是走走停停的, 我手机型号步步高V206的,手机的内存U盘显示以满但我查看了手机,手机里 ... 步步高v206,我想下载手机英语,希望各位指点指点,哪里有下载,下载后具体... 求助在matlab中如何实现高斯赛德尔迭代法 求数学迭代法的意义和应用包括雅可比,高斯-赛德尔迭代法的最好!急急急!!!!!!!!!!!!!!!! 交通事故多少天出责任认定书 SOR 和EOR 分别是什么意思? 编程:用高斯-赛德尔迭代法解方程 交通事故后多长时间出责任认定书 高斯赛德尔迭代法的迭代矩阵 交通事故责任认定书几天出 RLC电路输出端开路是什么意思 交通事故责任认定书几天能出 交通事故一般几天出责任认定书 交通事故责任认定书多长时间能出来? 大姨妈来了 黑色 第三天就干净了 是怎么回事 我来例假都是黑色的,而且量少,有人知道是怎么回事吗? 大姨妈黑色而且量少是怎么回事 在物理中“Z称为RLC串联电路的复阻抗”,谁能告诉我RLC是什么意思? 奥比岛怎么弄长颈鹿 梦见大黑狮子到我家,把门都弄坏,它是来保护我,但是我还是怕它 连轴梦到狮子 我家是在国内 但我梦到的却是在洛杉矶。醒来很害怕和不安,还请懂梦的朋友帮我分析下 谢! 小红书图片怎么样被夹 高斯赛德尔迭代法(VB代码) 雅克比迭代法的迭代矩阵J是Bx+f中的B,那高斯-赛德尔迭代法的迭代矩阵G,好像和J是一样的?是怎么算出来的? 哪位大侠,帮忙做道题?MATLAB编程:用高斯—赛德尔迭代法求解方程组。 求助,洗手日的活动策划 简单迭代法和高斯赛德尔迭代法有什么区别 为什么若线性方程的系数矩阵对称正定,则高斯-赛德尔迭代法对任意初始向量都收敛?怎么证明啊? 交通事故责任认定书几天出来 女人梦见自己没地方睡,睡屋檐下,找邻居奶奶傇宿,可是她没同意,是什么寓意? 解梦阿!梦见自己没地方去,就到同学宿舍住下了,不知怎么手流血了,宿舍的另两个人也是…这意味着什么 《钢铁是怎样炼成的》读后感 作文 800字 刘莎莎 梦见已逝的姑姑,说自己没房子住是什么意思呢 梦见死去妈妈说没地方居住是怎么回事 交警处理交通事故几天出责任认定书 给老师的一封信中赞美了什么表达了什么之情 《给老师的一封信》中赞美了什么 给老师的一封信中作者记下了方老师曾经给予自己的种种关爱和教会赞美了什么表 给老师的一封信赞美了老师的什么精神 《给老师的一封信》回忆了顾老师的哪些事情?令你感动的句子是什么?表达了作者怎样的心情? 给老师的一封信赞美了老师什么精神 《给老师的一封信》中,作者只记下顾老师曾经给予自己的种种关爱和教诲,赞美了什么?表达了什么?
  • 焦点

最新推荐

猜你喜欢

热门推荐