aardio调用MathNet科学计算库

By admin at 5 天前 • 0人收藏 • 152人看过

MathNet 是一个开源科学计算库,旨在构建和维护涵盖基础数学的工具箱,以满足 .Net 开发人员的高级需求和日常需求。

其中 Math.NET Numerics 旨在为科学、工程和日常使用中的数值计算提供方法和算法。涵盖的主题包括特殊函数,线性代数,概率模型,随机数,插值,积分变换等等。


官方网站: https://www.mathdotnet.com


使用LU分解求解线性方程组Ax=b的解的简单例子:


import console; 

import dotNet;
var numdll = dotNet.load("\MathNet.Numerics.dll");
var LinearAlgebra = numdll.import("MathNet.Numerics.LinearAlgebra");
var matrix = LinearAlgebra.Double.DenseMatrix.OfArray( {
	{3, 1.4,0,0 },
    {1.4, 2, 2.1, 0 },
    {0 ,2.1,4,3 },
    {0,0,3,3.4 }
} );
var b = LinearAlgebra.Double.DenseVector( { 1, 2, 3, 4 } );
var X = matrix.LU().Solve(b);
console.log(X);
console.pause(true);

MathNetNumerics.zip


4 个回复 | 最后更新于 4 天前
5 天前   #1

线性拟合

image.png

import console; 

import dotNet;
var numdll = dotNet.load("\MathNet.Numerics.dll");
var Numerics = numdll.import("MathNet.Numerics");
var x={};
var y={};
for(i=1;5;1){
	x[i] = i;
	y[i] = i+5;
}
//拟合y=kx+b
var ret = Numerics.Fit.Line(x,y);
//输出结果
console.log(ret)
//取第一个b
console.log(ret.Item1)
//取第二个K
console.log(ret.Item2)

console.pause(true);

多项式:

其中:与直线拟合一样,X为x轴的数组,Y为y轴数组,m为次方数。
比如平时我们使用较多的4次方,m就输入4,公式为:
y=res[4]*x^4 + res[3]*x^3 + res[2]*x^2 + res[1]*x + res[0]

var res = Fit.Polynomial(X, Y, 4);
console.dump(res)

image.png

5 天前   #2

中值平滑滤波:


import console; 

import dotNet;
var numdll = dotNet.load("\MathNet.Filtering.dll");
var Filtering = numdll.import("MathNet.Filtering");
//设置滤波点数
var mm = Filtering.Median.OnlineMedianFilter(2);
//提供大量滤波数据
var res = mm.ProcessSamples({ 1, 10, 2, 2.5,3,5,4,4 });
console.dump(res)
//插入单个数据
var res = mm.ProcessSample(8);
console.dump(res)
//插入单个数据
var res = mm.ProcessSample(20);
console.dump(res)
console.pause(true);

image.png

这里说下, 怎么得到的结果.

因为我设置的滤波数=2, 所以, (1+10)/2=5.5 , (10+2)/2=6 , (2+2.5)/2=2.25 , ...

MathNet.Filtering.zip


4 天前   #3

跟进...

虽然自己还没有接触到这一块

4 天前   #4

感谢提供一个新的思路用net计算,以前科学计算都是fortran,python+numpy或者新秀julia

登录后方可回帖

登 录
信息栏
公告:
私人站, 专注分享, 可在分享中适当提问, 但谢绝纯提问, 否则不再提醒一律删帖, 谢谢合作!



本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
Loading...