标签: mathnet-numerics

使用几何分布的随机数生成器

我需要使用几何分布的随机数生成器

http://en.wikipedia.org/wiki/Geometric_Distribution

我想MathNet.Numerics.Distributions

public void GeometricTest()
{
    var geometric = new Geometric(0.1);
    int back = geometric.Sample();
    Assert.Greater(back, -1);
}
Run Code Online (Sandbox Code Playgroud)

但是测试只给出负数。是否有人发现我的错误或给我其他采样几何分布方式的建议?

.net c# random distribution mathnet-numerics

4
推荐指数
1
解决办法
2033
查看次数

使用MathNET的置信区间

我有一个IEnumerable<double>数据样本.我想计算信号/数据的90%置信区间.我有MathNET库,但我对如何正确使用库感到困惑.根据我的数据,我们的想法是返回两个包含原始信号置信区间的附加数据数组

using MathNet.Numerics.Statistics;
using MathNet.Numerics.Distributions;

public static List<double[]> ConfidenceIntervals(IEnumerable<double> sample, double interval)
{
    Contract.Requires(interval > 0 && interval < 1.0);
    int sampleSize = sample.Count();
    double alpha = 1.0 - interval;
    double mean = sample.Mean();
    double sd = sample.StandardDeviation();

    double t, mu;
    double[] upper = new double[sampleSize];
    double[] lower = new double[sampleSize];
    StudentT studentT = new StudentT(mean, alpha, sampleSize - 1);
    int index = 0;
    foreach (double d in sample)
    {
        t = studentT.CumulativeDistribution(d);
        double tmp = …
Run Code Online (Sandbox Code Playgroud)

c# confidence-interval mathnet-numerics math.net

3
推荐指数
1
解决办法
3301
查看次数

Math.NET可以解决任何矩阵吗?

我正在尝试使用Math.NET来解决以下系统:

系数矩阵A:

var matrixA = DenseMatrix.OfArray(new[,] {
    { 20000, 0, 0, -20000, 0, 0, 0, 0, 0 },
    { 0, 666.66666666666663, 2000, 0, -666.66666666666663, 2000, 0, 0, 0 }, 
    { 0, 2000,  8000,  0,  -2000, 4000, 0, 0, 0 },
    { -20000, 0, 0, 20666.66666666666663, 0, 2000, -666.66666666666663, 0, 2000 },
    { 0, -666.66666666666663, -2000, 0, 20666.66666666666663, -2000, 0, -20000, 0 },
    { 0, 2000, 4000, 2000, -2000, 16000, -2000, 0, 4000 },
    { 0, 0, 0, -666.66666666666663, 0, -2000, …
Run Code Online (Sandbox Code Playgroud)

.net math matrix linear-algebra mathnet-numerics

3
推荐指数
2
解决办法
4210
查看次数

Math.NET 数字 - 来自双精度数组的 Matrix&lt;double&gt;

假设我有:

double[] someArray = new [] { 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44 };

是否有任何开箱即用的方法可以从此数组中创建 4x4 矩阵,而不必自己将其拆分为 4 个数组?

我知道这样做很简单,但我正在探索开箱即用的准备情况。

编辑

抱歉不清楚(认为标题是):

我想知道的是 Math.NET Numerics 中的矩阵生成器是否具有开箱即用的功能。就像是:

Matrix<double> someMatrix = DenseMatrix.OfArray(columns: 4, rows: 4, data: someArray);

c# arrays matrix mathnet-numerics

3
推荐指数
1
解决办法
6639
查看次数

功能化数字代码

玩F#,我试图以更实用的方式思考代码.我工作的很大一部分恰好是数字化的,所以我在想这种再教育是否有意义.是否正在以一种功能性的方式编写数字代码,例如试图在圆孔中安装方形钉,或者它只是一个陡峭的学习曲线而不管应用程序如何?

例如,让我们拿一个片段来演示大数的弱定律:

open System
open System.IO
open System.Windows.Forms
open System.Windows.Forms.DataVisualization
open FSharp.Data
open FSharp.Charting
open FSharp.Core.Operators
open MathNet.Numerics
open MathNet.Numerics.LinearAlgebra
open MathNet.Numerics.Random
open MathNet.Numerics.Distributions
open MathNet.Numerics.Statistics


let T = 1000

let arr1 = Array.init T (fun i -> float i*0.)
for i in 0 .. T-1 do
    arr1.[i] <- [|for j in 1..i do yield Exponential.Sample(0.1)|] |> Statistics.Mean

let arr2 = Array.init T (fun i -> float i*0.)
for i in 0 .. T-1 do
    arr2.[i] <- arr1.[1 .. i] …
Run Code Online (Sandbox Code Playgroud)

performance f# mathnet-numerics math.net

3
推荐指数
2
解决办法
218
查看次数

如何找到合适的幂律?

给定以下xs和ys集合:

xs = [8294400,2073600,921600,409920]

ys = [124,433,853,1449]

在Excel中使用幂律可以得到一个很好的近似值:

在此输入图像描述

Excel找到了表单的一个功能a(x^b).怎样才能确定ab在C#中?我尝试使用Math.Net数字,但我没有看到任何适用于此形式的函数的方法.线性回归模块中的所有函数只能找到各种形式函数的线性系数,但似乎没有一个能够确定指数.

c# mathnet-numerics

2
推荐指数
1
解决办法
962
查看次数

什么是numpy array [0 ,:] * = 1.23的MathNet等效项

我必须在c#(MathNet)中移植一些python(numpy)代码。我可以用python编写:

mtx = np.array([[0,1,2],[3,4,5]])
mtx[0,:] *= 1.23    #multiply all elements in row 0 by 1.23
Run Code Online (Sandbox Code Playgroud)

如何在MathNet中做到这一点?是否有比以下更好(更快)的解决方案:

mtx = np.array([[0,1,2],[3,4,5]])
mtx[0,:] *= 1.23    #multiply all elements in row 0 by 1.23
Run Code Online (Sandbox Code Playgroud)

c# python mathnet-numerics math.net

2
推荐指数
1
解决办法
1201
查看次数

使用 Math.Net 计算数组的均值和标准偏差

我正在使用 MathNet .dll 并且必须计算十进制值数组的平均值和标准偏差。

using MathNet.Numerics.Statistics;



static void Main(string[] args)
        {
            decimal[] values = { 39.99m, 29.99m, 19.99m, 49.99m };
            MathNet.Numerics.Statistics.
        }
Run Code Online (Sandbox Code Playgroud)

但我没有得到计算均值的方法。我必须执行许多数学运算但没有起点。如果有人能指出我正确的方向,我将不胜感激。我试过但找不到任何样本,以便我可以使用其余数学运算的信息。我必须使用 MathNet 库。谢谢

完整代码

using System;
using MathNet.Numerics.Statistics;
using System.Linq;

public class Program
{
    public static void Main()
    {
        decimal[] values = new[] { 39.99m, 29.99m, 19.99m, 49.99m };
        Tuple<double, double> meanStd = values
            .Select(x => (double)x)
            .MeanStandardDeviation();

        double mean = meanStd.Item1;
        double std = meanStd.Item2;

        Console.WriteLine("Mean = " + mean);
        Console.WriteLine("Std = " + std);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# mathnet-numerics

2
推荐指数
1
解决办法
3803
查看次数

将第二个索引器添加到Math.NET Numerics

不知道如何满足stackoverflow对这个的需求......

我想修改MathNET Numerics包,以便我可以使用索引器访问或分配子矩阵,如下所示:

A[rows, cols] 
Run Code Online (Sandbox Code Playgroud)

其中,rowscolsint[]

我编写了一个扩展方法Sub(int [] rows,int [] cols),它实现了相同的目标,但是使用索引方式会更聪明.

是否可以添加索引器的扩展而无需重建整个包?如果是这样的话?

c# indexing extension-methods packages mathnet-numerics

2
推荐指数
1
解决办法
76
查看次数

如何将F#(double - > double)转换为Func <double,double>?

我正在MathNet.Numerics.LinearAlgebra建立一个图书馆.我需要将一个用户指定的函数应用于矩阵的每个元素,我知道我可以使用它Map:

open System
open MathNet.Numerics.LinearAlgebra
open MathNet.Numerics.LinearAlgebra.Double

let m1 = matrix [[1.0; 2.0; 3.0]]
let f1 = fun s -> s * 3.14
let m2 = m1.Map f1 // THIS FAILS
let m3 = m1.Map (fun s -> s * 3.14) // THIS WORKS!
Run Code Online (Sandbox Code Playgroud)

m2我的行中得到以下错误:

This expression was expected to have type Func<float, 'a> but here has type double -> double
Run Code Online (Sandbox Code Playgroud)

但我需要能够传递映射函数,而不是将其定义为内联m3.该文档MathNet.Numerics似乎没有解决我的问题.

在此先感谢您的帮助.

f# mathnet-numerics math.net

1
推荐指数
1
解决办法
171
查看次数