高斯曲线拟合原理及实现

您所在的位置:网站首页 高斯数学原理 高斯曲线拟合原理及实现

高斯曲线拟合原理及实现

2023-09-08 03:15| 来源: 网络整理| 查看: 265

高斯拟合(Gaussian Fitting)即使用形如:                Gi(x)=Ai*exp((x-Bi)^2/Ci^2)         的高斯函数对数据点集进行函数逼近的拟合方法。         其实可以跟多项式拟合类比起来,不同的是多项式拟合是用幂函数系,         而高斯拟合是用高斯函数系。         使用高斯函数来进行拟合,优点在于计算积分十分简单快捷。这一点         在很多领域都有应用,特别是计算化学。著名的化学软件Gaussian98         就是建立在高斯基函数拟合的数学基础上的。

c#中用mathnet 惊醒矩阵运算  实现方案

 

double[,] a = new double[fitDatas.Count, 3]; double[] b = new double[fitDatas.Count]; double[] X = new double[3] { 0, 0, 0 }; for (int i = 0; i < fitDatas.Count; i++) { b[i] = Math.Log(fitDatas[i].Intensity); a[i, 0] = 1; a[i, 1] = fitDatas[i].WaveLength; a[i, 2] = a[i, 1] * a[i, 1]; } // Matrix.Equation(datas.Count, 3, a, b, X); MathNet.Numerics.LinearAlgebra.Matrix matrixA = new MathNet.Numerics.LinearAlgebra.Matrix(a); MathNet.Numerics.LinearAlgebra.Matrix matrixB = new MathNet.Numerics.LinearAlgebra.Matrix(b, b.Length); MathNet.Numerics.LinearAlgebra.Matrix matrixC = matrixA.Solve(matrixB); X = matrixC.GetColumnVector(0); double S = -1 / X[2]; double xMax = X[1] * S / 2.0; double yMax = Math.Exp(X[0] + xMax * xMax / S);

运用c++实现方案

#include #include #include #include double f(int n,double x){ //f(n,x)用来返回x的n次方 double y=1.0; if(n==0)return 1.0; else{ for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3