Seidel迭代法

2024-02-02 04:20
文章标签 迭代法 seidel

本文主要是介绍Seidel迭代法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
PS:e为误差值,自己设定

#include<stdio.h>
#include<math.h>
#define N 3
#define col 3//列数
#define row 3//行数
void print(double a[row][col]) {for (int i = 0; i < row; i++)//找到最大主元,记录行号和列号{for (int j = 0; j < col; j++){printf("%f  ", a[i][j]);}printf("\n");}printf("\n");
}void printXY(double XY[N]) {for (int i = 0; i < N; i++){printf("%f  ", XY[i]);}printf("\n\n");
}void Seidel(double X[N],double b[N], double a[N][N],double e)
{double p;for (int i = 1; i <=N; i++){X[i-1] = 0;}do {p = 0;for (int i = 1; i <= N; i++){double t = X[i-1];double sum = 0;for (int j = 1; j <= N; j++){if (j == i)continue;sum += a[i-1][j-1] * X[j-1];}X[i - 1] = (b[i - 1] - sum) / a[i - 1][i - 1];if (fabs(X[i - 1] - t) > p)p = fabs(X[i-1] - p);}} while (p>e);
}int main()
{double a[N][N] = {	{ 4,3,0},{ 3,4,-1 },{ 0,-1,4 },}, b[N] = {24,30,-24}, X[N] = { 0 },e=0;Seidel(X,b,a,e);printXY(X);getchar();
}

这篇关于Seidel迭代法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/669445

相关文章

559. N 叉树的最大深度(迭代法)

目录 一:题目: 二:代码: 三:结果: 一:题目: 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。 二:代码: /*// Definition for a Node.class Node {public:int val;vector<N

5、梯度下降法,牛顿法,高斯-牛顿迭代法

1、梯度下降     2、牛顿法         3、高斯-牛顿迭代法     4、代码部分 1.梯度下降法代码 批量梯度下降法c++代码: /*需要参数为theta:theta0,theta1目标函数:y=theta0*x0+theta1*x1;*/#include <iostream>using namespace std;int main()

589. N 叉树的前序遍历(迭代法)

目录 一:题目: 二:代码: 三:结果: 一:题目: 给定一个 n 叉树的根节点  root ,返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 二:代码: /*// Definition for a Node.class Node {public:int val;vector<Node*

PCL 拟合二维椭圆(迭代法)

文章目录 一、简介二、实现代码三、实现效果参考资料 一、简介 一般情况,我们会用椭圆拟合二维点,用椭球拟合三维点。在n维中,这些对象被称为超椭球体,由二次方程隐式定义 超椭球的中心是n×1向量C,n×n矩阵S是正定的,n×1向量X是超椭球上的任意点。矩阵S可以用特征分解,S = R D R T RDR^T RD

Newton迭代法例题

课本25页例2——7 #include<iostream>#include<math.h>using namespace std;int main(){cout<<"请输入初始值X:"<<endl;double x0,x1,F0,F1,F2,F3;cin>>x0;F0=x0*exp(x0)-1;F1=exp(x0)*(1+x0);int i;for( i=0;i<50;i++){if

迭代法解线性方程

迭代法是数值计算中一类典型方法,不仅用于方程求根,而且用于方程组求解,矩阵求特征值等方面。迭代法的基本思想是一种逐次逼近的方法。首先取一个精糙的近似值,然后用同一个递推公式,反复校正这个初值,直到满足预先给定的精度要求为止。      对于迭代法,一般需要讨论的基本问题是:迭代法的构造、迭代序列的收敛性天收敛速度以及误差估计。     迭代法的基本原理就是构造一个迭代公式,反复用

matlab实现牛顿迭代法求解非线性方程组

已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x3)+1.06=0 exp(-x1*x2)+20*x3+(10*pi-3)/3=0 求解要求精度达到0.00001 ---------------------------------------------------------分--割--线------------

强化学习实践二:迭代法评估4*4方格世界下的随机策略

本篇用代码演示《强化学习》第三讲中的示例——方格世界,即用动态规划算法通过迭代计算来评估4*4方格世界中的一个随机策略。具体问题是这样: 已知(如上图): 状态空间 S:为非终止状态;,终止状态,图中灰色方格所示两个位置;行为空间 A:{n, e, s, w} 对于任何非终止状态可以有向北、东、南、西移动四个行为;转移概率 P:任何试图离开方格世界的动作其位置将不会发生改变,其余条件下将1

C++实现牛顿迭代法求解f(x)=0

 #include <iostream> #include <cmath> using namespace std; #define f(x) x*x - 8 #define df(x) 2*x double EPS = 1e-6; double Newton(double xFirst) {    double xSecond;  int iteCount = 0;//迭代次数

HDU2899 Strange fuction(牛顿迭代法)

最近刚学完数值分析上的方程求根——牛顿法,所以做几题练习一下。 Problem Description Now, here is a fuction:   F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100) Can you find the minimum value when x is between 0 and 100.