问题标签 [best-fit-curve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 无点插值的最佳拟合
我有两组数据。一是名义形式。另一种是实际形式。问题是当我想单独计算表单错误时。当两组数据不是“相互重叠”时,这是一个大问题。这给出了还包括位置误差的错误。
两条曲线都是从一系列数据中读取的。标称形状(黑色)由许多彼此相切的不同尺寸半径组成。它是翼型轮廓的前缘。
我已经尝试了各种“最佳拟合”方法,我在这里和谷歌带我去的地方都找到了。但问题是它们都平滑了我的“实际”数据。所以它被修改并且没有保持它的实际形式。
scipy 或任何其他 python 库中是否有任何“简单地”可以在不改变实际形状的情况下将我的两条曲线拟合在一起的函数?我希望带有红点的绿色曲线尽可能地位于黑色之上。
是否可以计算两条曲线的重心,然后根据与中心点的值差在 x 和 y 中移动实际曲线?它可能不是最终的解决方案,但它会更接近?
c - 确定多项式方程的次数
我正在编写一个多项式最佳拟合求解器,作为一个有趣的学期休息项目。
给定输入:多项式的次数(即 2)和他们想要使用的一组点
使用最小二乘逼近法,在求解矩阵时,您会得到系统的以下系数:
方程为
现在,我想在以后使用这个等式。
但是,我可以用 n 个度数写出这些方程吗?
目前,coefs 存储在一个
所以如果我有一个 4 度的多项式,我知道等式将是
** 或者 **
如果我有一个 5 度的多项式,我的方程将是
或者
有什么方法可以根据多项式的次数来制定方程。我不想硬编码每个 coef 的学位。基于给定的输入输出。
谢谢
python - 哪个多项式回归次数显着?取决于点数或其他参数?
我正在研究数值导数的稳定性,作为计算这些导数所采取的步骤的函数。使用具有 15 个点的导数(通过有限差分法获得),我得到以下图(每个多极点“ l
”对应于一个参数,该参数取决于导数但无关紧要):
现在,我想将这个 15 点的导数与用 3、5 和 7 点计算的导数进行比较。为此,我刚刚绘制了相对差异(具有绝对差异):
当我想用多极 l=366.42 对上述相对变化进行多项式回归时,就会出现我的问题(对于其他多极,问题仍然存在)。
例如,当我进行三次回归(3 度)时,我得到以下图:
我不确切知道如何解释这些结果:也许这意味着我在 3 点和 15 点导数之间有一个相对误差最大值,而在 5 和 15 之间有一个较小的相对误差,比如在 7 到 15 点之间。
然后,如果我想做例如 10 次多项式回归,我会得到以下图:
如您所见,这与上面的三次回归完全不同。
所以我不知道多项式回归要采用哪个度数,我的意思是哪个度数与获得有效的物理结果相关:3、4、6 或者可能是 10。如果我的度数太大,结果无效,因为我有狄拉克峰和直线。
我猜要保留的正确多项式次数取决于插值曲线的初始点数(第一个图为 140 个点)以及其他参数。
作为结论,谁能告诉我是否有标准来确定应用哪个多项式次数?我的意思是从相对误差的角度来看最相关的次数。
如果我不做回归,我有以下情节难以解释:
这就是为什么我想对这些数据进行插值,以更清楚地看到不同相对演化之间的差异。
PS:这里是多项式回归的代码片段:
更新1:鉴于我没有关于相对误差值的假设(或模型),我不能对必须最适合数据的多项式程度施加先验约束。
但也许我有一个线索,因为我计算的导数是 3、5、7 和 15 个点。所以我分别有O(h ^ 2),O(h ^ 4),O(h ^ 6)和O(h ^ 14)的水平不确定性。
例如,对于 3 点导数,我有:
所以导数的最终表达式:
顺便说一句,我不明白为什么我们在表达式之间从 $O(h^4)$ 传递到 $O(h^2)$ 。
但主要问题是我没有立即假设我必须应用的多项式次数。
也许,我应该测试一系列多项式次数并在每次 chi2 时计算,所以最小的 chi2 会给我正确的次数来考虑。
你怎么看待这件事 ?Numpy 或 Python 是否已经对特定功能进行了这种研究?
更新 2:我试图确定最适合数据的 1-15 次多项式范围。我的标准是适合每个度数的多项式,然后计算“插值计算数据”和“实验数据”之间的 chi2。如果新的 chi2 低于之前的 chi2,我会更新度数以选择进行多项式回归。
不幸的是,对于 3,5 和 7 点导数中的每一个,我总是通过“理想度数”的这项研究得到,最大度数对应于所探索的度数间隔的最大值。
好的,chi2 对于最高程度来说是最小的,但这与物理结果不对应。不要忘记,在 10^-4 以下,Cl' 的行为是混乱的,所以我不期望将导数收敛的物理解释为导数点数的增加。
但有趣的区域在 10^-4 以上,我有更多的稳定性。
鉴于我选择最佳度数作为 chi2 函数的方法不起作用(它总是给出探索范围的最大度数),是否有另一种方法可以很好地拟合?我知道这很困难,因为小步骤的混乱区域。
最后一件事,三次回归(3 度)给出了很好的曲线,但我不明白为什么这只发生在 3 度而不是更高的度数。
正如有人在评论中所说,对于更高程度的回归,过度拟合:如何解决这个问题?
r - 如何将高斯曲线拟合到这些数据?
我是 R 新手,我试图让曲线适合这个散布数据,给我一个高斯曲线。我真的很感激任何帮助。数据:
我用来绘制的代码是:
plot(log10(MK20$X.Intensity), MK20$Average, col=1, xlim=c(-0.5,4), ylim=c(0,20), xlab="Log(Average diameter)", ylab="Intensity", xaxt='n')
我正在使用 minor.tick.axis 函数在对数 x 轴上添加次要刻度。我想向该数据添加一条高斯曲线(最适合)。我试图type='l'
在绘图上添加一个,但曲线并不平滑,我不想要一条必须触及每个数据点但最适合的曲线。
很抱歉,如果解决方案很简单,但我无法弄清楚。
r - 是否可以拟合特定的斜率以最适合 R 中的数据段?
背景:我正在分析石油生产数据,我在 y 轴上绘制每日石油产量,在 x 轴上绘制诊断“时间”因子。这种组合往往表现出一定的趋势,具体取决于流态,其中通常有一个半坡度或四分之一坡度,然后是一个单位坡度。这是非常基本的,但方法是过时的,一切都是手动完成的。
我想知道 R 中是否有一种方法可以找到最适合特定斜率的数据段,并在该数据上拟合相关线,可能达到对数图上的 R^2 标准?还有一种方法可以得到斜率变化的点吗?
matlab - 寻找一个好的 MatLab 函数
我有一组 2D 数据给我一个椭圆 我正在寻找一个 MatLab 函数或编程语言中的任何其他函数,这些函数让我最适合 2D 椭圆到一个圆锥,我在 MatLab 中使用了 cftool 函数,但它给了另一个cftool 函数产生的形状不是圆锥
curve-fitting - lmfit 和 scipy curve_fit 将初始猜测作为最佳拟合参数返回
我想为一些数据拟合一个函数,但我遇到了一个问题。我尝试使用 scipy 中的 lmfit 或 curve_fit。下面我描述一下这个问题。
这是我的数据:
此外,这是要适合数据的模型函数:
其中 u1、u2 是已知数字,要拟合的参数是:Rp、Rs、a、orb_inclination、Rin、Rout、tau,它们包含在 Agps、Agos、Agis 的数量中。下面是函数 A 的定义:
第一次尝试:curve_fit
第二次尝试:lmfit
所有情况都作为最佳拟合参数返回初始猜测。我应该怎么做才能使其正常工作?
注意:假设参数已知,模型具有预期的行为(图 1),所以我认为模型定义明确,问题与此无关。
任何帮助,将不胜感激。先感谢您!
r - 在ggplot2上拟合具有已知x截距的三阶多项式
我正在尝试使用 stat_smoth 在 ggplot2 上拟合三阶多项式,但希望通过已知的 x 截距强制回归线(以下可重现示例为 35)。
例子:
当 x 截距为 35 时,如何获得最佳拟合回归线和方程?另外,我怎样才能让线接触x轴?