簡體   English   中英

使用自己的通用類型(帶有Math.NET數值)的C#矩陣計算和SVD

[英]C# Matrix calculations and SVD using own generic type (with Math.NET Numerics)

我為間隔算術編寫了自己的結構,為簡單起見,我們只說這是一個由下限和上限定義的值。 你們中有些人可能熟悉Range類型,這非常相似。

我重載了整個算術運算符,例如+,-,*,/,<,>,...。 所以我想我應該有一個類似通用類型的東西(或者應該能夠實現其余的類型 )。

現在,我要使用我的類型進行計算。 由於我正在處理線性方程組 ,需要SVD之類的東西並且不想重新發明輪子,因此我打算使用現有的Math庫,例如Math.NET Numerics 但這是他們的矩陣類說的:

/// <summary>
    /// Defines the base class for <c>Matrix</c> classes.
    /// </summary>
    /// <typeparam name="T">Supported data types are <c>double</c>, <c>single</c>, <see cref="Complex"/>, and <see cref="Complex32"/>.</typeparam>
    [Serializable]
    public abstract partial class Matrix<T> :
        IFormattable, IEquatable<Matrix<T>>
#if !PORTABLE
        , ICloneable
#endif
        where T : struct, IEquatable<T>, IFormattable

簡而言之:他們說只允許使用double,single和complex。 因此,即使我的通用類型實現了所有列出的接口,也無法使用,對嗎?

所以:我不能在我的類型中使用Math.Net數值嗎? 您知道其他支持我的類型/泛型的數學庫嗎? 我真的必須編寫自己的實現嗎?

提前致謝!

我不能直接發表評論(由於信譽不佳),所以我必須發表一個“答案”,我很抱歉!

我不認為您擁有的是“通用類型”,而是特定的,自定義的(不是內置的)類型。

現在假設您實際上可以使用Matrix抽象類(順便說一句,您應該自己嘗試一下)來表示一個間隔矩陣。 我仍然不遺余力,因為據我所知,計算間隔矩陣的SVD與任何特定矩陣的SVD沒有直接關系,是嗎? 對於間隔特征值/特征向量計算同樣如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM