关于使用克莱姆法则和矩阵消元法解线性方程组的效率的比较

《众所周知》,在线性代数这门课中,我们学习了两种解线性方程组的方法:克莱姆法则(Cramer's Rule)和矩阵消元法。但是在考研数学李永乐的课堂上了解到,由于计算量太大,克莱姆法则并不适合解线性方程组(亏我还在洪老师课堂上给学弟学妹们安利这种方法解方程组,我错了)。那么,使用克莱姆法则的效率到底能低到什么程度呢?本文将使用C#语言在Debug模式下分别使用两种方法解10000个含有30个未知数,30个方程的非齐次线性方程组,以比较它们的优劣。为了简化测评,本程序的测试数据均排除了方程组无解的情况,确保方程组有且仅有唯一解。

C#代码如下:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;

namespace ConsoleApp1
{
    class Program
    {
        class Dets
        {
            public double[,] xishu, zengguang;
            public double[][,] replace;
        }
        const int N = 30;
        static void Main(string[] args)
        {
            Random rand = new Random();
            List<Dets> dets = new List<Dets>();
            while (dets.Count < 10000)
            {
                Dets d = new Dets();
                d.xishu = new double[N, N];
                d.zengguang = new double[N, N + 1];
                for (int i = 0; i < N; i++)
                {
                    for (int j = 0; j < N; j++)
                    {
                        d.zengguang[i, j] = d.xishu[i, j] = rand.NextDouble();
                    }
                    d.zengguang[i, N] = rand.NextDouble();
                }
                if (getDet(d.xishu) == 0) continue;
                d.replace = new double[N][,];
       
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值