本文最先发布于本人博客 哔哔哔哔-使用C++实现克拉默法则(Cramer’s law)
克拉默法则(Cramer’s law)是线性代数中的一条定理,用行列式来计算出线性等式组中的所有解,被用于计算n元一次方程
前言
近期线性代数学习到了克拉默法则,结合前文使用C++实现n阶行列式的计算所写代码,可以实现解n元一阶方程的目的
项目地址
https://github.com/gst-be/cramer
代码
本次代码分为主程序main.cpp
和子程序det.cpp
两部分,主程序主要负责数值的输入和输出,子程序负责计算行列式
main.cpp
#include <iostream>
#include "det.cpp"//导入det.cpp子程序文件
#define MAX 30//最大阶数
//生成临时数组c,从a导入数值,并将c[][t]赋b的值
double calc(double a[MAX][MAX],double b[MAX],int n,int t)
{
double c[MAX][MAX];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(j==t)
c[i][j]=b[i];
else
c[i][j]=a[i][j];
}
}
return det(c,n);//调用子程序的函