当前位置: 首页 > news >正文

计算方法实验2(补充):列主元消元法解线性方程组

C++源代码

#include<bits/stdc++.h>
using namespace std;// 列主元消去法求解线性方程组
vector<long double> Column_Elimination(vector<vector<long double>> A, vector<long double> b);int main()
{vector<vector<long double>> A(3, vector<long double>(3, 0));A[0][0] = 2, A[0][1] = 4, A[0][2] = -3;A[1][0] = 4, A[1][1] = -3, A[1][2] = 1;A[2][0] = 1, A[2][1] = 3, A[2][2] = -2;vector<long double> b(3, 1);vector<long double> X = Column_Elimination(A, b);for(int i = 0; i < 3; i++)cout << X[i] << " ";return 0;
}// 列主元消去法求解线性方程组
vector<long double> Column_Elimination(vector<vector<long double>> A, vector<long double> b)
{int n = A.size();vector<long double> x(n, 0);vector<vector<long double>> matrix(n, vector<long double>(n + 1, 0));for(int i = 0; i < n; i++){matrix[i][n] = b[i];for(int j = 0; j < n; j++)matrix[i][j] = A[i][j];}for(int col = 0; col < n; col++)//找到列主元{long double maxnum = abs(matrix[col][col]);int maxrow = col;for(int row = col + 1; row < n; row++){if(abs(matrix[row][col]) > maxnum){maxnum = abs(matrix[row][col]);maxrow = row;}}swap(matrix[col], matrix[maxrow]);for(int row = col + 1; row < n; row++){long double res = matrix[row][col] / matrix[col][col];for(int loc = col; loc <= n; loc++)matrix[row][loc] -= matrix[col][loc] * res; }}for(int row = n - 1; row >= 0; row--)//回代{for(int col = row + 1; col < n; col++){matrix[row][n] -= matrix[col][n] * matrix[row][col] / matrix[col][col];matrix[row][col] = 0;}matrix[row][n] /= matrix[row][row];matrix[row][row] = 1;}for(int i = 0; i < n; i++)x[i] = matrix[i][n];return x;
}

补充:python解线性方程组

import numpy as npA = np.array([[2, 4, -3], [4, -3, 1], [1, 3, -2]])
b = np.array([1, 1, 1])x = np.linalg.solve(A, b)print(x)
http://www.lryc.cn/news/343771.html

相关文章:

  • Qt扫盲-Qt D-Bus概述
  • 懒洋洋作业讲解
  • vue3 + ts实现canvas绘制的waterfall
  • 代码随想录算法训练营第四十四天
  • 【3dmax笔记】027:配置修改器集、工具栏自定义与加载
  • Reactor模型详解
  • 内存卡罢工,数据危机?别急,有救!
  • python爬虫实战
  • k8s 资源文件参数介绍
  • mac系统安装steam报错-解决办法
  • 这个簇状柱形图怎么添加百分比?
  • Tomact安装配置及使用(超详细)
  • web后端——netbeans ide +jsp+servlet开发学习总结
  • 使用request-try-notifyState流程实现UI控制与状态反馈的完整闭环
  • 屏蔽罩材质和厚度对屏蔽效能的影响
  • Qt简单离线音乐播放器
  • 微信小程序常用的api
  • iOS xib布局
  • UNI-APP_拨打电话权限如何去掉,访问文件权限关闭
  • Git知识点汇总表格总结
  • 漫谈:C语言 奇葩的指针定义规则
  • spring boot中一般如何使用线程池
  • Shader 纹理动画和顶点动画
  • 使用macof发起MAC地址泛洪攻击
  • 力扣:1979. 找出数组的最大公约数(Java)
  • 电瓶车充电桩:潜藏的暴利行业,简单入门到月入万元!
  • mac监听 linux服务器性能可视化(Grafana+Promethus+Node_exporter)
  • 【负载均衡在线OJ项目日记】运行功能开发
  • Qt | QLineEdit 类(行编辑器)
  • Mamba结构的Demo源码解读