超松驰迭代法SOR_解线性方程组的迭代法

2024-02-20 07:18

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

超松驰迭代法SOR_解线性方程组的迭代法

标签:计算方法实验

#include <stdio.h>
#include <math.h>#define maxn 3int main()
{double a[maxn][maxn + 1], x[maxn] = {0};double eps = 1e-9, w = 1.05;int n, k, kmax = 100;freopen("gauss.txt", "r", stdin);scanf("%d", &n);for(int i = 0; i < n; i++)for(int j = 0; j < n + 1; j++)scanf("%lf", &a[i][j]);//for(int i = 0; i < n; i++)//{//for(int j = 0; j < n + 1; j++)  printf("%-15f", a[i][j]);//printf("\n");//}for(k = 0; k < kmax; k++){double norm = 0;for(int i = 0; i < n; i++){double x0 = x[i];double sum = 0;for(int j = 0; j < n; j++)  if(j != i)  sum += a[i][j] * x[j];  ///x[i] = (1 - w) * x0 + (a[i][n] - sum) / a[i][i];  ///w松弛因子if(fabs(x[i] - x0) > norm) norm = fabs(x[i] - x0);  //norm计算范数}printf("\nk = %2d  x =  ", k + 1);for(int i = 0; i < n; i++)  printf("%-15f", x[i]);if(norm < eps)  break;}if(k < kmax){printf("\n\nk = %d\n", k + 1);for(int i = 0; i < n; i++)  printf("x%d = %-15f\n", i + 1, x[i]);}else  printf("\n\nfailed\n");return 0;
}

数据文件
input
实验结果
output

这篇关于超松驰迭代法SOR_解线性方程组的迭代法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

线性代数 第五讲:线性方程组_齐次线性方程组_非齐次线性方程组_公共解同解方程组_详解

线性方程组 文章目录 线性方程组1.齐次线性方程组的求解1.1 核心要义1.2 基础解系与线性无关的解向量的个数1.3 计算使用举例 2. 非齐次线性方程的求解2.1 非齐次线性方程解的判定2.2 非齐次线性方程解的结构2.3 计算使用举例 3.公共解与同解3.1 两个方程组的公共解3.2 同解方程组 4.重难点题型总结4.1 抽象齐次线性方程组的求解4.1 含有系数的非齐次线性方程组的求

通义说【线性代数】线性方程组和线性代数的关系

线性方程组和线性代数之间有非常紧密的关系。事实上,线性方程组是线性代数的一个核心主题,而线性代数提供了解决线性方程组的一系列理论和工具。 线性方程组 线性方程组是由一组线性方程构成的集合,每个方程都表示未知变量的线性组合等于一个常数项。一个典型的线性方程组可以写作: a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 +

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

DeepSORT(目标跟踪算法)中的解三角方程计算标准化残差(解线性方程组)

DeepSORT(目标跟踪算法)中的解三角方程计算标准化残差(解线性方程组) flyfish 《DeepSORT(目标跟踪算法)中的计算观测值与状态估计的马氏距离》这篇文章介绍了Cholesky 分解。Cholesky 分解将协方差矩阵分解成下三角矩阵,使得求解过程可以高效进行。这篇是利用 solve_triangular 函数,我们可以高效地解这些线性方程组,从而得到标准化残差和更新后的状态

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 ---------------------------------------------------------分--割--线------------