函数实现

function x = gauss_elim(A, b)
    % 获取矩阵 A 的维度
    [n, ~] = size(A);
    
    % 扩展矩阵 A 和向量 b 组成增广矩阵 [A|b]
    Ab = [A b];
    
    % 高斯消元过程
    for i = 1:n
        % 选取主元素(行交换)
        [~, maxRow] = max(abs(Ab(i:n, i))); % 找到第 i 列的最大元素
        maxRow = maxRow + i - 1; % 修正为全矩阵的行号
        if i ~= maxRow
            % 交换行
            Ab([i, maxRow], :) = Ab([maxRow, i], :);
        end
        
        % 消元过程,消去主元下方的元素
        for j = i+1:n
            % 计算系数
            factor = Ab(j, i) / Ab(i, i);
            % 更新该行
            Ab(j, :) = Ab(j, :) - factor * Ab(i, :);
        end
    end
    
    % 回代求解
    x = zeros(n, 1); % 初始化解向量
    for i = n:-1:1
        x(i) = (Ab(i, end) - Ab(i, 1:n) * x) / Ab(i, i);
    end
end
阅读全文 »

gitgithub的关系和区别

git

说到git,很多初学者的第一印象是github,好像git的用处就是从github仓库clone项目,或者也可以把自己的项目上传到github,但是为什么要上传,也不是很清楚。

其实,git作为一个分布式版本控制系统,是一个命令行工具,它最根本的功能是用于在本地管理和跟踪文件的更改历史,或者用更好理解的说法,git的基础功能是“存档”。

阅读全文 »

叠甲——本文没有推荐任何人卸载IDE

本篇记录一种不用集成开发环境直接纯终端敲命令行的方法,可以装逼,没啥实用性。 第一步:卸载vscode、CLion、PyCharm、VisualStudio

(bushi)


正常步骤

阅读全文 »

作为一种解释型语言而非编译型语言,python并不像C++那样可以直接生成可执行文件。 这意味着一个python程序想在另一台电脑上跑就必须在另一台电脑装python解释器。但生活经验告诉你,你用的应用都有可执行文件(windows中是exe),它们当中大概率有python编译的部分,但它们为什么可以有可执行文件? 事实上,python也不是完全不能有可执行文件,但是要通过工具打包,PyInstaller就是一种方法。 PyInstaller 是一个将 Python 脚本打包为独立可执行文件的工具,支持 Windows、macOS 和 Linux 系统。以下是使用 PyInstaller 的步骤:

阅读全文 »

Python 作为一种解释型语言,虽然易于编写和维护,但在执行速度上可能不如 C++ 这样的编译型语言。C++ 提供了高度优化的性能,尤其是在计算密集型任务中。 有时候,你可能已经有大量用 C++ 编写的现有代码或库,重新用 Python 实现这些功能费时费力。你或许想过通过调用 C++ 代码来复用这些现有的模块和算法。

阅读全文 »