高斯赛德尔矩阵怎么写

1.高斯赛德尔迭代法的迭代矩阵

^迭代法写成x<-Bx+f之后迭代矩阵当然是B

不过问题在于不同的迭代法产生的B和f是不同的

在Jacobi迭代中A=D-L-U,Ax=b Dx=(L+U)x+b x=D^{-1}(L+U)x+D^{-1}b

所以B=D^{-1}(L+U)

在Gauss-Seidel迭代中同样A=D-L-U,但是Ax=b (D-L)x=Ux+b x=(D-L)^{-1}Ux+(D-L)^{-1}b

所以B=(D-L)^{-1}U

2.用c++写一个万能的高斯

这是 C 程序,你把头文件换成 c++,把 printf 改 cout 就可以了。

无论是几维数组 ?-- 数组大小还是维数?

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define N 100

float *GauseSeidel(float *a,int n)

{

int i,j,nu=0;

float *x,dx;

x=(float *)malloc(n*sizeof(float));

for(i=0;i<=n-1;i++)

x[i]=0.0;

do {

for(i=0;i<=n-1;i++) {

float d=0.0;

for(j=0;j<=n-1;j++)

d+=*(a+i*(n+1)+j)*x[j];

dx=(*(a+i*(n+1)+n)-d)/(*(a+i*(n+1)+i));

x[i]+=dx;

}

if(nu>=N)

{

printf("iter divergence\n");

exit(1);

}

nu++;

}

while(fabs(dx)>1e-6);

return x;

}

void main()

{

int i;

float *x;

float c[12]={5,2,1,8,2,8,-3,21,1,-3,-6,1};

float *GauseSeidel(float *,int);

x=GauseSeidel(c,3);

for(i=0;i<=2;i++)

printf("x[%d]=%f\n",i,x[i]);

getch();

}

3.雅可比迭代法和高斯赛德尔迭代法的迭代矩阵怎么求

1. 用雅克比迭代法和高斯--赛德尔迭代法求解下列方程组,取迭代初值[0;0;0]。

(1) 编程求解,并与用数学软件求解的结果对比。(2) 考察迭代法的收敛性,若均收敛,对比两种方法的收敛速度。

解:源程序:①雅克比迭代法:建立函数文件jacobi.m function [n,x]=jacobi(A,b,X,nm,w)%用雅克比迭代法求解方程组Ax=b%输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度%输出:x为求得的方程组的解构成的列向量,n为迭代次数 n=1; m=length(A); D=diag(diag(A)); %令A=D-L-U,计算矩阵D L=tril(-A)+D; %令A=D-L-U,计算矩阵L U=triu(-A)+D; %令A=D-L-U,计算矩阵U M=inv(D)*(L+U); %计算迭代矩阵 g=inv(D)*b; %计算迭代格式中的常数项%下面是迭代过程 while n<=nm x=M*X+g; %用迭代格式进行迭代 if norm(x-X,2)> A=[10,3,1;2,-11,3;1,3,12]; b=[2;-5;4]; X=[0;0;0]; nm=50; w=10^-6;>> jacobi(A,b,X,nm,w) 迭代次数为 n = 14 方程组的解为 x = 0.0254 0.5144 0.2026 ②高斯赛德尔迭代法的运行过程及结果为:>> A=[10,3,1;2,-11,3;1,3,12]; b=[2;-5;4]; X=[0;0;0]; nm=50; w=10^-6;>> gaussseidel(A,b,X,nm,w) 迭代次数为 n = 6 方程组的解为 x = 0.0254 0.5144 0.2026 ③用matlab中的A\b命令的运行过程及结果如下:>> A=[10,3,1;2,-11,3;1,3,12]; b=[2;-5;4];>> A\b ans = 0.0254 0.5144 0.2026(1)由运行结果可知,编程得到的方程组的解为[0.0254;0.5144;0.2026]。而用matlab中的A\b命令求出的方程组的解为[0.0254;0.5144;0.2026],完全一致。

(2)由运行过程可知,两种方法均收敛,雅克比迭代次数为14,高斯赛德尔迭代次数为6,说明后者的迭代速度比前者快。2.用超松弛迭代法求解方程组,分别取松弛因子 ,取迭代初值[0;0;0],迭代30次或满足 时停止计算。

(1) 编程求解,并与用数学软件求解的结果对比。(2) 考察迭代是否收敛,若收敛,松弛因子取何值时收敛最快,与有关定理的结论对照,看结果是否一致。

解:源程序:①超松弛迭代法:建立函数文件sor22.m function [n,x]=sor22(A,b,X,nm,w,ww)%用超松弛迭代法求解方程组Ax=b%输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度,ww为松弛因子%输出:x为求得的方程组的解构成的列向量,n为迭代次数 n=1; m=length(A); D=diag(diag(A)); %令A=D-L-U,计算矩阵D L=tril(-A)+D; %令A=D-L-U,计算矩阵L U=triu(-A)+D; %令A=D-L-U,计算矩阵U M=inv(D-ww*L)*((1-ww)*D+ww*U); %计算迭代矩阵 g=ww*inv(D-ww*L)*b; %计算迭代格式中的常数项%下面是迭代过程 while n<=nm x=M*X+g; %用迭代格式进行迭代 if norm(x-X,'inf')

4.怎样用高斯

// 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_FILEstatic 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。

5.高斯赛德尔迭代法matlab编程

去百度文库,查看完整内容>

内容来自用户:w___w000

‍function[x,k]=GaussSeidel(A,b,x0,eps,M)

%高斯赛德尔迭代法求方程组的解(矩阵公式求解)

%A为方程组的系数矩阵;b为方程组的右端项

%x为线性方程组的解了;x0为迭代初值

%eps为误差限;M为迭代的最大次数

if nargin==3

eps= 1.0e-6;%默认精度

M = 10000;%参数不足时默认后两个条件

elseif nargin ==4

M = 10000;%参数的默认值

elseif nargin<3

error('参数不足');

return

end

[n,m]=size(A);

nb=length(b);

%当方程组行与列的维数不相等时,停止计算,并输出出错信息

if n~=m

error('矩阵A行数和列数必须相等!');

return;

end

%当方程组与右端项的维数不匹配时,停止计算,并输出出错信息

if n~=nb

error('矩阵A的行数必须和b的长度相等!');

return;

end

L =zeros(n,n);

U =zeros(n,n);

D =zeros(n,n);

for i=2:n

for j=1:i-1

L(i,j)=-A(i,j);

end

end

for i=1:n-1

for j=i+1:n

U(i,j)=-A(i,j);

end

end

for i=1:n

D(i,i)=A(i,i);

end

B=inv(D-L)*U; %B为迭代矩阵

g=inv(D-L)*b; %g为右端项

pr=max(abs(eig(B))); %求迭代矩阵谱半径

if pr>=1

error('迭代矩阵谱半径大于1迭代法不收敛');

return;

end

k=0;

tol=1;

while tol>=eps

x = B*x0+g;

k = k+1; %迭代步数

tol = norm(x-x0);%前后

6.求助在matlab中如何实现高斯赛德尔迭代法

%Gauss-Seidel迭代法解线性方程组的Gauss-Seidel函数

%A为未知数的系数矩阵;b为方程组右边常值列向量;x0取ones(m,1)m为未知数个数;eps为精度,如果不输入eps,默认为1.0e-6

function [x,n]=GaussSeidel(A,b,x0,eps)

if nargin==3

eps=1.0e-6;

elseif narginerror;

return;

end

D=diag(diag(A));

L=-tril(A,-1);

U=-triu(A,1);

G=(D-L)\U;

f=(D-L)\b;

x=G*x0+f;

n=1;

while norm(x-x0)>=eps

x0=x;

x=G*x0+f;

n=n+1;

end

7.Matlab 高斯

A=diag(ones(1,50)*12);

A=A+[[zeros(49,1) -2*diag(ones(1,49))];zeros(1,50)];

A=A+[[zeros(1,49); -2*diag(ones(1,49))] zeros(50,1)];

A=A+[[zeros(48,2) diag(ones(1,48))];zeros(2,50)];

A=A+[[zeros(2,48); diag(ones(1,48))] zeros(50,2)];

b=ones(50,1)*5;

x=gseid(A,b,zeros(50,1),0.001,1000)

高斯赛德尔矩阵怎么写

转载请注明出处育才学习网 » 高斯赛德尔矩阵怎么写

知识

招租要求怎么写

阅读(207)

本文主要为您介绍招租要求怎么写,内容包括门面招租怎么写,招租信息怎么写,我想出租店面怎么写公告。招租启示要写明如下信息:商铺位置(并写上周围的经营条件);2、商铺客流量;3、商铺租金;4、商铺图片;5、联系电话及联系人。示范模板:本

知识

摇动的英语单词怎么写

阅读(336)

本文主要为您介绍摇动的英语单词怎么写,内容包括摇晃的英语单词怎么写,摇动的的英语翻译摇动的用英语怎么说,摇动用英语怎么说,摇动的英语翻译是:shake。你好!摇动shake 英[ʃeɪk] 美[ʃek] vt. 动摇; 摇头; 使发抖; 使心绪不宁[烦恼,惊吓]; vi.

知识

申论大作文怎么写分论点

阅读(224)

本文主要为您介绍申论大作文怎么写分论点,内容包括申论大作文分论点怎么写,申论大作文如何分析总论点,拿去高分,申论作文分论点怎么写。分论点+过度+举例+分析+总结观点如:清正廉洁是好干部良好作风之基。(要理解自己的分论点的含义,否则就会

知识

三年级读书报怎么写

阅读(290)

本文主要为您介绍三年级读书报怎么写,内容包括小学生三年级读书手抄报内容该怎么写,小学生三年级读书卡怎么写,三年级读书小报怎么写。1.先需要准备一张A4的纸,先确定一下需要做几个版面。

知识

酒后打架保证书怎么写

阅读(224)

本文主要为您介绍酒后打架保证书怎么写,内容包括酒后打架保证书怎么写,酒后打架检讨书怎么写,酒后打架的检讨书。我的检讨书! 检 讨 书 尊敬的老师: 今天,我怀着十二万分的愧疚以及十二万分的懊悔给您写下这份检讨书,以向您表示我对旷课这种恶

知识

家长没写作检讨怎么写

阅读(252)

本文主要为您介绍家长没写作检讨怎么写,内容包括怎样写家长没签名检讨,家长不认真检讨书怎么写,家长会家长没来,老师让写1500字检讨怎样写。内容自己改这次犯错误,自己想了很多东西,反省了很多的事情,自己也很懊悔,很气自己,去触犯学校的铁律,也

知识

春天的气息作文怎么写

阅读(267)

本文主要为您介绍春天的气息作文怎么写,内容包括《春的气息》日记怎么写,我闻到了春天的气息那篇作文怎么写,我闻到了春天的气息那篇作文怎么写。《春的气息》日记春天来了,春天来了!大地上的万物在绵绵春雨中苏醒了。春天来到了公园里。小草

知识

施工电梯限载怎么写

阅读(245)

本文主要为您介绍施工电梯限载怎么写,内容包括SC200/200型施工电梯的限载人数一般的做法是多少,建筑施工人货电梯限载多少人啊,施工电梯限载8人包括司机吗。限载12人。参数SC200/200的施工电梯为齿轮齿条啮合,外置式三驱动调速1-63m/min施工

知识

石岩连笔怎么写

阅读(220)

本文主要为您介绍石岩连笔怎么写,内容包括马小娟连笔怎么写,连笔签名设计免费版,免费设计个性签名连笔签。王耀永的连笔写法

知识

关于孝顺的作文怎么写

阅读(272)

本文主要为您介绍关于孝顺的作文怎么写,内容包括关于孝的故事作文怎么写,孝的作文怎么写,关于孝顺的作文。今天从我爸爸的一本玉器书上看到二十四孝的故事,不过今天只讲二个我最拿手的。因为以前有这二个故事的动画片,所以不用看书,我就先给妈

知识

跳高作文写话怎么写

阅读(394)

本文主要为您介绍跳高作文写话怎么写,内容包括看图写话跳高“钻”家怎么写,跳高运动会作文怎么写,绝招跳高作文怎么写。一天,爸爸想教孩子跳高,他找到一处小区的围栏想跳过去,爸爸对孩子说:“你一定要看清爸爸怎么跳的。”爸爸跳地很高,孩子还以

知识

我帮爸爸捶背要怎么写

阅读(263)

本文主要为您介绍我帮爸爸捶背要怎么写,内容包括我帮爸爸捶背作文,为爸爸捶背的作文怎么写开头和结尾,给爸爸捶背作文。[我帮爸爸捶背作文]今天一大早起床感觉空气很新鲜,我看了看窗外,晴朗的天空中飘着几朵白云,我帮爸爸捶背作文。 我来到客

知识

要怎么写防溺水

阅读(237)

本文主要为您介绍要怎么写防溺水,内容包括关于防溺水怎么写,怎么写防溺水作文,防溺水作文(怎么写啊)。为了让防溺水专项教育工作能深入人心,家庭、师生皆知。学校一方面建立健全各种预防学生溺水的安全防范制度,实行各负其责的防范工作机制。另

知识

中摆笔顺怎么写

阅读(310)

本文主要为您介绍中摆笔顺怎么写,内容包括摆的笔顺怎么写,摆的笔画顺序怎么写,中的笔顺怎么写。摆的笔顺为横、竖钩、提、竖、横折、竖、竖、横、横、竖、横、撇折、点。

知识

德尔玛加湿器怎么用

阅读(342)

本文主要为您介绍德尔玛加湿器怎么用,内容包括德尔玛加湿器使用教程,德尔玛加湿器f370使用方法,德尔玛加湿器使用教程。必备材料:德尔玛加湿器提起上部的德尔玛加湿器上盖,露出水箱,如下图所示;

知识

五阶矩阵怎么写

阅读(246)

本文主要为您介绍五阶矩阵怎么写,内容包括公式编辑里编辑五阶矩阵六阶矩阵,5阶矩阵用分块法求其逆矩阵怎么求,五阶矩阵,计算它的最大特征值五阶矩阵为[a1,3,5,5,6;3,33a,9,9,。程序:syms a;A=[a-1,-3,-5,-5,-6;3,3-3*a,9,9,12;3,5,15-15*a,1

知识

matlab两矩阵减法程序怎么写

阅读(240)

本文主要为您介绍matlab两矩阵减法程序怎么写,内容包括怎么用MATLAB实现两个矩阵之间的运算,用matlab怎么编写两个矩阵里任意两数相减,Matlab里怎么把两矩阵的对应元素相减。a = [1 2 3; 4 5 6; 7 7 8];b = [1 2 2; 2 3 4];A = prod(a,2);B

知识

增广矩阵的特解怎么写

阅读(345)

本文主要为您介绍增广矩阵的特解怎么写,内容包括线性代数怎样从方程组的增广矩阵中读取特解和基础解系,,增广矩阵求解,线性代数怎样从方程组的增广矩阵中读取特解和基础解系,多谢百度。增广矩阵,又称广置矩阵,是在线性代数中系数矩阵的右边添

知识

偶尔德尔怎么写

阅读(202)

本文主要为您介绍偶尔德尔怎么写,内容包括偶尔的尔怎么写,偶尔的偶怎么写,用偶尔开头.仿写两段。枝繁叶茂的背后 在我们的日常生活中,时常可以听到一些人这样议论那些取得了成绩的人:“这纯属偶然。”他们将他成功的原因过多归功于偶然得到的

知识

路由矩阵怎么写

阅读(224)

本文主要为您介绍路由矩阵怎么写,内容包括路由矩阵是什么意思具体代表什么含义呢,路由表怎么写,单位矩阵怎么写。这是个蛇形矩阵,算法如下:#include #define N 10int a[N][N];void func(int n){int i

知识

给出资源状态怎么写need矩阵

阅读(287)

本文主要为您介绍给出资源状态怎么写need矩阵,内容包括系统中四类资源各自的总数是多少请写出need矩阵.当前系统状态是,Need矩阵是怎样的,在银行家算法中,若出现下述资源分配状况。所谓系统是否安全,看是否能够找到一个安全序列。若能,则是安

知识

c语言中转置矩阵怎么写

阅读(198)

本文主要为您介绍c语言中转置矩阵怎么写,内容包括用C语言实现矩阵转置,C语言,求转置矩阵,c语言矩阵转置的编写。//Transpose#include <stdio.h>#define MAX 20int m,n;void transpose(do

[/e:loop]