拟合由三个方程描述的非平滑曲线
fitting a non-smooth curve that is described by three equations
我面临以下问题:
我想拟合一条曲线,该曲线由包含三个不同 x 范围的一组三个不同函数的基础模型描述,以确定三个未知参数(xG1
、xG2
和 b
) 这些功能中的四个整体。
对于x
较小的转换值xG1
,函数值应为零:
f(x) = 0 for x < xG1
对于 xG1
和 xG2
之间的 x
,曲线遵循幂律:
f(x) = ( (xG2 - 2 a ⁄ b) / (a - 2 a ⁄ b) )∙[(x - xG1) / (xG2 - xG1)]^2 for xG1 ≤ x ≤ xG2
对于x
更大的xG2
曲线再次遵循线性关系:
f(x) = (x - 2 a ⁄ b) / (a - 2 a⁄b) for x ≥ xG2
所以我现在的问题是过渡值 xG1
和 xG2
本身是待确定的未知参数,所以我不能使用分段拟合来确定它们。
我一定会用 matlab 解决这个问题。
我试过使用曲线拟合工具箱,但它不太适合解决这样的问题,这就是为什么我目前正在尝试使用全局优化工具箱寻找方法。
也许有人想用全局优化工具箱或通常使用 matlab 的完全不同的方法来解决这个问题。
提前致谢
此致
有一次我不得不解决一个类似的问题,我有一个分段定义的模型,两个表达式之间的交叉点是一个自由参数。
我所做的是从对所有模型参数的初始猜测开始,然后最小化平方误差。在我的案例中,这是通过 gradient decent 完成的,我根据所有模型参数(包括交叉点)对梯度进行了数值评估。我当时没有使用 MATLAB,但这里可以应用相同的方法。
另一种方法是让 MATLAB 完成所有繁重的工作。如果您有权访问优化工具箱,则可以使用 fmincon
等函数来解决您的问题。 fmincon
将模型参数的向量和它试图最小化的成本函数作为输入。在这种情况下,模型参数的向量也将包含交叉点,并且您的成本函数将是模型中的错误,其中成本函数将解释不同的交叉点。
我面临以下问题:
我想拟合一条曲线,该曲线由包含三个不同 x 范围的一组三个不同函数的基础模型描述,以确定三个未知参数(xG1
、xG2
和 b
) 这些功能中的四个整体。
对于x
较小的转换值xG1
,函数值应为零:
f(x) = 0 for x < xG1
对于 xG1
和 xG2
之间的 x
,曲线遵循幂律:
f(x) = ( (xG2 - 2 a ⁄ b) / (a - 2 a ⁄ b) )∙[(x - xG1) / (xG2 - xG1)]^2 for xG1 ≤ x ≤ xG2
对于x
更大的xG2
曲线再次遵循线性关系:
f(x) = (x - 2 a ⁄ b) / (a - 2 a⁄b) for x ≥ xG2
所以我现在的问题是过渡值 xG1
和 xG2
本身是待确定的未知参数,所以我不能使用分段拟合来确定它们。
我一定会用 matlab 解决这个问题。
我试过使用曲线拟合工具箱,但它不太适合解决这样的问题,这就是为什么我目前正在尝试使用全局优化工具箱寻找方法。
也许有人想用全局优化工具箱或通常使用 matlab 的完全不同的方法来解决这个问题。
提前致谢
此致
有一次我不得不解决一个类似的问题,我有一个分段定义的模型,两个表达式之间的交叉点是一个自由参数。
我所做的是从对所有模型参数的初始猜测开始,然后最小化平方误差。在我的案例中,这是通过 gradient decent 完成的,我根据所有模型参数(包括交叉点)对梯度进行了数值评估。我当时没有使用 MATLAB,但这里可以应用相同的方法。
另一种方法是让 MATLAB 完成所有繁重的工作。如果您有权访问优化工具箱,则可以使用 fmincon
等函数来解决您的问题。 fmincon
将模型参数的向量和它试图最小化的成本函数作为输入。在这种情况下,模型参数的向量也将包含交叉点,并且您的成本函数将是模型中的错误,其中成本函数将解释不同的交叉点。