gpt4 book ai didi

c++ - 如何设计:矩阵的线性代数例程

转载 作者:行者123 更新时间:2023-11-28 06:20:06 25 4
gpt4 key购买 nike

在 C++ 中,出于教育目的,我正在构建一个线性代数包。我的问题是如何为用户设计一个好的界面。

我有一个矩阵类可以创建为

matrix<int> A (3,3)

此类处理存储在矩阵中的数据,如何遍历它们、获取特定元素、打印矩阵等...

我有另一个线性代数类,它对矩阵进行数学计算。所以它会像这样工作

LA<int> B ;

// I have a method in LA , which gives the determinant.

matrix<int> C = B.determinant(A);

// Just doesn't look good to me, I want to be able to do this

matrix<int> C = determinant(A); // This seems more natural

// Is there any way to eliminate the need to create an LA object ?

一种方法是在 A 中定义行列式并调用 A.determinant()。但这并没有给我模块化。

那我该怎么做呢?

另外

  • 你知道有什么方法可以减少用户输入 matrix 的次数吗?我可以使用 typedef 吗?
  • 如果您正在使用此类,您更喜欢 determinant() 还是一些简短形式的行列式。使用简短形式意味着更少的输入,但这也会使代码更难理解。我该如何权衡取舍。

  • 我计划研究其他线性代数类(class)(如 bltiz)如何做到这一点。但我恐怕水平太高,无法理解他们使用的技术。您能否提出任何建议(书籍、网站等),让我可以了解设计模式,以及如何在不崩溃的情况下编写大量代码。

  • 谢谢

最佳答案

你可以有一个实用程序命名空间:

namespace UTILITY {
// define determinant here
}

然后在本地你可以使用:

typedef UTILITY::determinant determinant; 

然后使用:

determinant(A);

关于c++ - 如何设计:矩阵的线性代数例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29458699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com