【问题标题】:What sort of mathematics do you use in your .NET application? [closed]您在 .NET 应用程序中使用哪种数学? [关闭]
【发布时间】:2008-10-21 04:49:32
【问题描述】:

除了System.Math 中的所有内容,您在 .NET 应用程序中使用了哪种数学?

我认为 System.Math 严重不足。例如,在几个官方的.NET 框架中,我可以算出三种不同的矩阵实现。向量也是如此。复数的一种实现;任意有理数的几种不同实现,等等。

那么,您希望在假设的 System.Mathematics 命名空间中看到什么?

【问题讨论】:

    标签: .net math base-class-library


    【解决方案1】:

    这是我使用的:

    • 数值积分
    • 数值导数
    • FFT
    • 矩阵
    • 矢量
    • 复数
    • 多边形、球体、环形等几何类型
    • 高斯分布
    • 纳维-斯托克斯方程
    • DSP 过滤器
    • 符号代数
    • 四元数
    • 优化
    • 常微分方程和 ODE 求解器
    • 偏微分方程也是如此

    【讨论】:

    • 每天有多少程序员会使用这样的高级数学?
    • 嗯,复数/矩阵/​​向量/高斯分布并不完全是“高级”...
    • 它们对于大多数应用程序来说都是相当先进的,一旦使用它们应该具有非常高的性能。我工作过的每家银行都实施了自己的数学库,因为量化分析师想要“自己的”算法。
    • 是的,有些是相当先进的......但你可以争辩说对于 CodeDOM 或 Reflection.Emit。微软已经多次实施了其中的很多;它们应该在专用命名空间中一劳永逸地实现。
    • 天哪,FFT、DSP 滤波器和四元数!我几乎没有触及这些主题的表面——你必须热爱数学!
    【解决方案2】:

    我很少需要基本“会计数学”之外的任何东西。

    【讨论】:

      【解决方案3】:

      泛型支持(因为 C# 3.0 不允许使用泛型和运算符),例如 here

      【讨论】:

      • 我实际上创建了一个库来做到这一点。它为每种类型创建一个表达式树,将两个输入相加,并将其编译为委托;它缓存该委托,然后调用它。我把它做成了对象的扩展方法,所以你可以做类似 var z = x.Add(y);.
      • 是的,我也是;-p 它位于 Jon 的 MiscUtil 库中,由 Operator 类提供。
      【解决方案4】:

      类似FleeDotmath 中的表达式评估(参见herehere

      【讨论】:

        【解决方案5】:

        检查 http://msdn.microsoft.com/en-us/vcsharp/aa336740.aspx

        在数学下面有一些 C# 库的链接

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-21
          • 2010-09-15
          • 1970-01-01
          相关资源
          最近更新 更多