C++线性方程求解

本文介绍了如何使用C++编写一个线性方程求解器,程序从文本文件读取方程并解决。代码使用稀疏矩阵和向量存储,支持解析简单格式的输入方程。文章探讨了算法的背景,解释了如何处理病态方程,以及为何选择稀疏容器。程序还提供了解决示例和源代码文件列表。
摘要由CSDN通过智能技术生成

介绍

程序SolveLinearEquations解决联立方程。该方案需要一个文本文件,其中包含输入和输出方程解决。这个项目是几年前我写在C#中http://www.codeproject.com/Articles/673076/Linear-Equation-Solver线性方程组求解。以外,这个程序没有图形用户界面和一个稍微修改公式格式,这个计划是非常类似于C#程序,该程序使用SparseArray模板类来实现向量和矩阵。矩阵使用DoubleIndex的类,这需要两个整数指数,实行单一的键使用SparseArray类。矩阵SparseArray的存储类型是双精度数。每个向量只是一个实例的的SparseArray类存储一个双精度值一个整数索引一键。代码使用原油的解析器来解析输入文件中的方程。这是原油,因为它需要有些僵硬的输入格式,不支持括号或数学函数。

输入文件是一个文本文件,其中包含方程。可以有不超过1024个字符的行上。方程以分号结束。如果没有分号结尾的行,然后在下一行上继续方程。

该方程具有以下格式,它允许使用加法和减法符号,以结合的形式: 

[number][variable]

每个方程中必须有一个单等号。

无论是数字或变量是可选的,可以结合使用加号或减号所需的许多条款。这个数字可以包含小数点和指数。变量可以
只包含字母字符或下划线字符。

浮点指数前^字符,而不是通常的ê字符,以避免任何模糊变量名。下面的行显示一个浮点数,等于230万。  

X = 2.3^6

公式必须包含一个等号。

方程组的一个例子是: 

3 X + 4 Y = -5 Z

X + Z = 10 Y

X + Z = 42.5

注意空行分隔方程。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值