分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组(转载)
算法介绍(迭代法介绍):
代码C语言实现;
- # include<stdio.h>
- # include<math.h>
- # define N 6
- /*
- *使用雅可比迭代法和高斯-赛德尔迭代法 求解线性方程组
- */
- main(){
- float NF2(float *x,float *y);
- float A[N][N],b[N],sum=0;
- float x[N],y[N]={0},x0[N];
- int i,j,n=0;
- //输入系数矩阵
- for(i=0;i<N;i++){
- for(j=0;j<N;j++){
- scanf(”%f”,&A[i][j]);
- }
- }
- //输入常数矩阵
- for(i=0;i<N;i++){
- scanf(”%f”,&b[i]);
- }
- //输入解的初值
- for(i=0;i<N;i++){
- scanf(”%f”,&x0[i]);
- }
- //输出系数矩阵
- printf(”输出该方程组的系数矩阵:\n”);
- for(i=0;i<N;i++){
- for(j=0;j<N;j++){
- printf(”%3.1f “,A[i][j]);
- }
- printf(”\n”);
- }
- //输出成数矩阵
- printf(”输出该方程组的常数矩阵:\n”);
- for(i=0;i<N;i++){
- printf(”%3.1f\n”,b[i]);
- }
- //输出解的迭代初值
- printf(”解该方程组的的迭代初值是:\n”);
- for(i=0;i<N;i++)
- {
- printf(”%3.1f\n”,x0[i]);
- }
- /*
- *利用雅可比迭代法求解线性方程组
- */
- for(i=0;i<N;i++)
- {
- x[i]=x0[i];
- }
- for(n=0;;n++){
- //计算下一个值
- for(i=0;i<N;i++){
- sum=0;
- for(j=0;j<N;j++){
- if(j!=i){
- sum=sum+A[i][j]*x[j];
- }
- }
- y[i]=(1/A[i][i])*(b[i]-sum);
- //sum=0;
- }
- //判断误差大小
- if(NF2(x,y)>0.01){
- for(i=0;i<N;i++){
- x[i]=y[i];
- }
- }
- else
- break;
- }
- printf(”经过%d次雅可比迭代解出方程组的解:\n”,n+1);
- for(i=0;i<N;i++){
- printf(”%f “,y[i]);
- }
- /*
- *利用高斯-赛德尔迭代法求解线性方程组
- */
- for(i=0;i<N;i++)
- {
- x[i]=x0[i];
- y[i]=0;
- }
- for(n=0;;n++){
- //计算下一个值
- for(i=0;i<N;i++){
- sum=0;
- for(j=0;j<i;j++){
- sum=sum+A[i][j]*y[j];
- }
- for(j=i+1;j<N;j++){
- sum=sum+A[i][j]*x[j];
- }
- y[i]=(1/A[i][i])*(b[i]-sum);
- //sum=0;
- }
- //判断误差大小
- if(NF2(x,y)>0.01){
- for(i=0;i<N;i++){
- x[i]=y[i];
- }
- }
- else
- break;
- }
- printf(”\n经过%d次高斯-赛德尔迭代解出方程组的解:\n”,n+1);
- for(i=0;i<N;i++){
- printf(”%f “,y[i]);
- }
- }
- //求两个向量差的二范数函数
- float NF2(float *x,float *y){
- int i;
- float z,sum1=0;
- for(i=0;i<N;i++){
- sum1=sum1+pow(y[i]-x[i],2);
- }
- z=sqrt(sum1);
- return z;
- }
代码运行输入输出结果;
转载自:https://blog.csdn.net/yyywww666/article/details/42805071
http://www.taodudu.cc/news/show-1217210.html
相关文章:
- 超松弛迭代法(C语言实现)
- 单目相机提高标定精度的经验(转载)
- 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换(转载)
- 彻底搞懂四元数(转载)
- OpenCV--solvePnp
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……(转载)
- OpenCV--罗德里格斯(Rodrigues)变换
- 摄影测量--相对定向-绝对定向(C++实现)
- 摄影测量--内外方位元素
- 摄影测量--相对定向元素与绝对定向元素
- 张正友相机标定程序实现
- Eigen部分基本使用方法
- FFMPEG针对视频操作的基本命令
- 三维重建中旋转矩阵与平移矩阵思想误区(转载)
- setw()(转载)
- 外方位角元素解析
- OpenCV--卡尔曼滤波(KalmanFilter)详解【转载】
- OpenCV--矩阵操作总结
- Procrustes Analysis(普氏分析)
- C++ 标准文件的写入读出(ifstream,ofstream)
- 利用制表位快速居中对齐公式,同时公式编号靠右对齐
- FFmpeg命令的几种应用
- 截取视频段转换为GIF动图
- 世界坐标与像素坐标的相互转换
- 由左右像点坐标反求世界坐标点
- Opencv透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解
- QR矩阵分解
- 无人驾驶汽车系统入门系列
- OpenCV--读取图像中任意点的像素值,并显示坐标
- OpenCV--求取图像多轮廓质心,并于图像上绘制显示质心及其坐标
分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组(转载)相关推荐
- 雅可比(Jacobi)及高斯-塞德尔(Gauss_Seidel)迭代法求解线性方程组的matlab现实
雅可比迭代法的实现代码: function X=Jacobi(A,B,P,delta,max1) %Input -A is a X*N nosingular matrix % -B is a N*1 ...
- 高斯—赛德尔(Gauss - Seidel)迭代法解线性方程组(Matlab程序)
%---高斯-赛德尔迭代法----- %---Gauss - Seidel iteration method clear;clc; % A=[10,-1,-2;-1,10,-2;-1,-1,5]; % ...
- 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组
算法介绍(迭代法介绍): 代码C语言实现; # include<stdio.h> # include<math.h> # define N 6 /* *使用雅可比迭代法和高斯- ...
- MATLAB实现雅可比与高斯塞德尔迭代
概述 用MATLAB编程实现,形成m函数文件.输入A,b矩阵,无返回值,解得x向量直接显示在命令行窗口,同时绘制出x向量的收敛曲线. A = [ 2 − 1 1 1 1 1 1 1 − 2 ] b = ...
- 计算方法:列主元消去法,LU分解法, 雅可比迭代法,高斯塞德尔迭代法 解线性方程(C++)
Matrix.h包括矩阵类Matrix的定义,Matrix.cpp包括该类成员函数的实现,LinearEqu.h包括线性方程类LinearEqu的定义,继承自Matrix类,其中solve()方法为列 ...
- [计算机数值分析]高斯-塞德尔迭代公式解线性方程组
在雅可比迭代公式的基础上,对于收敛的迭代过程,所求出的"新值"常比"老值"更准确些,因此可以用它替代老值作进一步的计算,这样的思想就是著名的高斯-塞德尔迭代公式 ...
- 基于高斯塞德尔方法的超松弛迭代法MATLAB实现
概述 用MATLAB编程实现,形成m函数文件.输入A,b矩阵,与松弛因子 ω \omega ω,无返回值.设置精度要求 ε = 1 0 − 4 \varepsilon=10^{-4} ε=10−4.所 ...
- 方程组求解matlab实现(朴素高斯求解、LU分解、雅可比迭代方法、高斯-塞德尔方法、连续过松弛(SOR))
朴素高斯求解 function x= oridinarygauss(a,b) n=length(b); for j=1:n-1for i=j+1:nmult=a(i,j)/a(j,j);for k=j ...
- 高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现
高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现 代码 运行 手算例题 迭代法解线性方程组的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则,有不同的 ...
最新文章
- GridView 类型公开的所有成员(公共属性、公共方法、私有属性.......)
- 分布式系统监视 开源解决方案 zabbix与nagios对比
- C语言dijkstra最短距离的算法(附完整源码)
- matlab课程设计图像处理,MATLAB课程设计--GUI图像处理
- 设计素材|手机UI界面模板psd源文件格式!
- 计算机网络class1(概念、组成、功能和分类)
- 【转】VB中NEW的用法(申请内存空间)
- 车牌识别:HyperLPR车牌识别代码解析
- 利用Python和正则表达式验证hotmail邮箱的格式
- JRebel安装、使用
- 跨平台第三方平台登录和单点登录
- 面试过程中经常会问到的职业规划,该如何作答
- 对参考文献格式的一些举例
- 国际惯例,个人流程分享
- AllWinner T113 DDR验证
- Altium Designer 实用操作笔记
- 解决不同逻辑电平的兼容问题
- 全民k歌导出音乐方法(包含未发布,已发布歌曲导的两种方法)
- 一个有趣的免费资源:snap shots
- 纳芯微全新驱动器NSi66x1A/NSi6601M发布
热门文章
- leaflet-webpack 入门开发系列二加载不同在线地图切换显示(附源码下载)
- C#LeetCode刷题之#48-旋转图像(Rotate Image)
- pdm vault 使用_如何使用Key Vault连接器更好地保护Logic Apps中的秘密
- 项目使用ts辅助_我如何建立辅助项目并在第一周获得31,000名用户
- axure 小程序 lib_【kboneui】打通 H5/微信小程序,多端UI库
- vscode设置go-lint警告提示
- Oracle(二):查询、函数、集合运算
- kali修改root密码
- 曾经采集朋友圈难倒多少Python大佬,今天手把手教你如何实现!
- Python Turtle画分形树理解递归