用C语言实现线性方程组的数值解法

简介
数值求解方法主要有以下两条途径:
直接法:利用Gauss消元或矩阵分解,通过有限次运算可求出精确解。
迭代法:构造迭代格式,产生迭代序列,通过无限次迭代过程求解。有限次截断得近似解。
其中,直接解法可采用Gauss消元法、Doolittle分解法(三角分解法、LU分解法)、Crout分解法(与Doolittle类似)、Cholesky分解法(平方根法)。

标注
此笔记中的四种消元方法已用函数封装,矩阵A和向量b数据的读取可以通过读文件操作,从文件A.txt与文件b.txt中进行读取(需自行创建),也可以通过数据输入的方式进行矩阵赋值。同时通过引用time.h头文件实现对四大算法的执行速度的测试。

程序代码:

#include
#include
#include
#include

//非线性方程的直接解法
void gauss(float*A,float*x,float*b,int n);
void Lu_doolittle(float*A,float*x,float*b,int n);
void Lu_crout(float*A,float*x,float*b,int n);
void cholesky(float*A,float*x,float*b,int n);

//输出数组元素
void printArray(float *a,int m,int n)
{
    for(int i=0; i=0; i--)
    {
        x[i]=b[i];
        for(int j=i+1; j=0; i--)
    {
        x[i]=y[i];
        for(int j=i+1; j=0; i--)
    {
        x[i]=y[i];
        for(int j=i+1; j=0; i--)
    {
        x[i]=y[i];
        for(int j=i+1; j

运行截图:
用C语言实现线性方程组的数值解法_第1张图片

你可能感兴趣的:(用C语言实现线性方程组的数值解法)