拟合Math.Net通过原点的曲线
问题描述:
我有一组(Xi,Yi)点,应该用通过零点的三次多项式函数拟合。拟合Math.Net通过原点的曲线
我认为这个任务使用MathNet.Numerics,但我没有在documentation 中看到一个选项来强制拟合函数通过原点。如果此选项不受支持,请提供一个使用MathNet.Numerics最新版本中包含的函数的解决方案。
答
我会假设你知道这是你将如何适应一些数据Math.Net
Func<Double, Double> MyFunc = Fit.PolynomialFunc(xDataArr, yDataArr, 3);
至于迫使它通过我从未见过该选项的由来。我认为唯一真正的解决方案是将点(0, 0)
纳入您的数据集,并希望最好?
你可以尝试的东西根本没有数学意义,那就是多次将(0, 0)
指向你的数据集。
感谢您的快速回复。使用Math.Net拟合数据非常简单。向数据添加(0,0)并不等同于限制图通过(0,0)。我只是想知道我是否可以在当前版本中解决这个限制。 – atrash
我已经经历过几次“Fit”,我从未见过有这样的限制。而且我知道向数据添加'(0,0)'并不严格限制它。 //另一个可能的选择是获取函数系数而不是'Func',然后根据需要修改系数? – KDecker
传递原点相当于Excel中的“设置截距= 0”。下面是用Matlab解决这个问题的两种方法:http://www.mathworks.com/matlabcentral/answers/94272-how-do-i-constrain-a-fitted-curve-through-specific-points-like-the -origin-in-matlab http://www.mathworks.com/matlabcentral/fileexchange/35401-polyfitzero – atrash