C#使用MathNet库来对进行曲线拟合

技术C#使用MathNet库来对进行曲线拟合 C#使用MathNet库来对进行曲线拟合下面是用来求取一条直线和一条拟合曲线交点的代码/// summary/// 拟合曲线所筛选的点的个数/// /sum

C#使用MathNet库来对进行曲线拟合

下面是用来求取一条直线和一条拟合曲线交点的代码

///摘要

///拟合曲线所筛选的点的个数

////摘要

const int曲线数=10

///摘要

///拟合曲线的阶数

////摘要

public int m=2;

///摘要

///取直线上的点的个数

////摘要

const int XNums=50

///摘要

///最小二乘法拟合曲线

////摘要

///参数名='X'X轴数组/param

///参数名='是'轴数组/param

///参数名='m '阶数/param

///返回返回曲线方程的各阶系数(由高阶到低阶,一般m=2)/返回

公共双[]拟合曲线(双[]X,双[] Y,int m=2)

{

///https://博客。csdn。net/QQ _ 23062949/文章/详情/119700640 SPM=1001。2101 .3001 .6650 .3 UTM _中等=分布式。PC _相对。无-任务-博客-2 ~默认~ ctrl列表~默认-3。no _ search _ link depth _ 1-UTM _ source=distribute。PC _相对。无-任务-博客-2 ~默认~ ctrl列表~默认-1

double[] res=新的双[m^ 1];

如果(十长度米Y长度米)

{

分辨率=适合.多项式(X,Y,m);

}

返回表示留数

}

///摘要

///计算直线方程

////摘要

///参数名='起点'直线起点/param

///参数名='角度'直线的角度/param

///返回返回k,b的数组/returns

公共双[]计算线(点起点,双角度)

{

双k=数学。谭(角度/180 *数学. PI);

双b=起点.Y - k *起点x;

返回新的double[] { k,b };

}

///摘要

///计算交点

////摘要

///param name='LineResult '直线的k,b/参数

///param name='CurveResult '拟合曲线的系数数组/param

///param名称='LineX '直线上的点的X坐标/param

///参数名='m '阶数/param

///返回/返回

public EPoint计算interpoint(double[]行结果,double[] CurveResult,double[] LineX,int m)

{

EPoint InterPoint=new EPoint();

if (LineResult .长度==2曲线结果。长度==(^ 1号)

{

double k=行结果[0];

double b=行结果[1];

for(int I=0;我是LineX .count();(一)

{

double x=LineX[I];

双y _ Line=k * x b;

双y _ Curve=0;

for(int n=0;n=m;n)

{

y_Curve=曲线结果[n] *数学.幂(x,n);

}

bool IsSuccessFind=false

for(int t=1;t=50t)

{

如果(数学Abs(y)线表示“有…的”曲线)5)

{

InterPoint=new EPoint((int)x,(int)y _ Line);

IsSuccessFind=true

打破;//跳出内循环

}

}

if(issuessfind)

{

打破;//跳出外循环

}

}

}

返回InPut

}

///摘要

///计算R^2,R^2这个值越接近1,说明拟合出来的曲线跟原曲线就越接近

////摘要

///参数名='是'实际的y/参数

///参数名='Ytest '代入拟合曲线方程得到的y/参数

///返回返回R^2/returns

公共双精度计算平方(双[]是,双[] Ytest)

{

double RSquared=GoodnessOfFit .RSquared(Y,Ytest);

返回RSquared

}

4556

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155871.html

(0)

相关推荐

  • Python与C++引用的示例分析

    技术Python与C++引用的示例分析本篇文章给大家分享的是有关Python与C++引用的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在用Pyth

    攻略 2021年10月25日
  • Tomcat中如何清理缓存

    技术Tomcat中如何清理缓存这篇文章将为大家详细讲解有关Tomcat中如何清理缓存,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、关于Tomcat“缓存”的介绍 很多时候

    攻略 2021年12月11日
  • 知足知不足有为有不为什么意思,有为有不为,知足知不足谁写的

    技术知足知不足有为有不为什么意思,有为有不为,知足知不足谁写的冰心老人说过的话,教育子女为人处事的一段道理.大意是知足知不足有为有不为什么意思:正确的事情不论大小都要去做,错误的事情再小也不要去做;要学会知足,知足方能长

    生活 2021年10月27日
  • edge什么意思,福特edge是什么意思

    技术edge什么意思,福特edge是什么意思edge就是锐界的意思,这是长安福特新推出的一款SUV车型。福特锐界 福特锐界是一款中型跨界SUV车型,在福特CD3平台上打造,厚积者锐意进取拓疆界引领同侪福特锐界,入门配置锐

    生活 2021年10月19日
  • Web前后端分离开发的方法是什么

    技术Web前后端分离开发的方法是什么本篇内容主要讲解“Web前后端分离开发的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前后端分离开发的方法是什么”吧!在传

    攻略 2021年11月2日
  • 怎么解决数据库查询非常慢问题

    技术怎么解决数据库查询非常慢问题本篇内容主要讲解“怎么解决数据库查询非常慢问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库查询非常慢问题”吧!一、cpu lo

    攻略 2021年11月16日