如何符合指数曲线与已知误差

50个视图(30天)
你好,
我有X, Y数据我想指数曲线数据errorbars尽管im strugeling找到命令这样做,当我试着基本errorbar命令它给了我一个阴谋而不是弯曲的情节,有1命令我需要做什么?
提前谢谢!
2的评论
Avichay阿舒尔
Avichay阿舒尔 2021年5月23日
X = (-504, -494, -490, -484, -478, -456, -436, -402, -364, -322] * 10 ^ 6
Y = (4.85, 4.37, 4.07, 3.65, 3.24, 2.16, 1.52, 0.8, 0.4, 0.18)% -0.002 [V] + [V]
errX = (0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01)

登录置评。

接受的答案

约翰D 'Errico
约翰D 'Errico 2021年5月23日
一些想法……
这是您的数据:
X = (-504, -494, -490, -484, -478, -456, -436, -402, -364, -322] * 10 ^ 6;
Y = (4.85, 4.37, 4.07, 3.65, 3.24, 2.16, 1.52, 0.8, 0.4, 0.18);% -0.002 [V] + [V]
errX = (0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01);
首先,这些误差常数在X,但它们相对巨大,X的大小相比,他们几乎没有影响健康。
接下来,你想使用模型
Y = * exp (b * X)
如果模型不适合,那么假设我们记录模型?我们可以看到这样做的影响由semilogy阴谋。如果是一条直线,那么你的模型是合适的。
semilogy (X, Y,“啊——”)
网格
包含“X”
ylabel“Y”
我看到一些微小偏离线性左端,但线性域符合得很好。我惊讶的是,接近一条直线。
我们可以做适合记录模型使用一个简单的线性最小二乘(即。polyfit)。但由于您使用的是曲线拟合工具箱,我们可以使用它。首先,我将做记录上的合适模型。登录模式,我们会看到:
日志(Y) =日志(a) + b * x
loggedmodel =适合(X,日志(Y),“poly1”)
loggedmodel =
线性模型Poly1: loggedmodel (x) = p1 * x + p2系数(95%置信界限):p1 = -1.835 e + 04 (-1.869 e + 04, -1.8 e + 04) p2 = -7.602 (-7.756, -7.448)
时间= exp (loggedmodel.p2)
时间= 4.9945 e-04
最好= loggedmodel.p1
最好的= -1.8348 e + 04
同样,这完全忽视了这些误差。但是你的误差是巨大的,而在X数量的大小。
,上述模型假定噪声是在日志(Y),不是在x这重要吗?也许不是,因为你的数据很好线性在这一领域。
我们可以估计模型以非线性形式吗?当然可以。但是,我现在会忽略这些误差,因为他们都是如此之大,不断的对所有的X。
英国《金融时报》= fittype (“exp1”)
英国《金融时报》=
一般模型Exp1:英国《金融时报》(a, b, x) = a * exp (b * x)
mdl =适合(X, Y,英国《金融时报》,“开始”,当地时间,最好)
mdl =
一般模型Exp1: mdl (x) = * exp (b * x)系数(95%置信界限):a = 0.0008243 (0.0002759, 0.001373) = -1.73 e + 04 (-1.866 e + 04, -1.594 e + 04)
情节(X, Y,“o”)
持有
情节(mdl)
网格
正如你所看到的,线性化模型估计做躺在信心范围内非线性适应我们发现,然而,它们是不相同的。一个问题是,我不知道你的数据有错误在Y或x看起来你有测量值在两个轴。所以我不知道如何最好地治疗评估过程。
9日评论
斯科特·麦肯齐
斯科特·麦肯齐 2021年5月27日
谢谢你,亚当。在这个问题上很好的narative。

登录置评。

答案(1)

斯科特·麦肯齐
斯科特·麦肯齐 2021年5月23日
情节我看起来是弯曲的。
的误差图显示为水平线因为它们是非常小的。这里有一个调整您的数据增加误差的大小:
X = (-504, -494, -490, -484, -478, -456, -436, -402, -364, -322] * 10 ^ 6;
Y = (4.85, 4.37, 4.07, 3.65, 3.24, 2.16, 1.52, 0.8, 0.4, 0.18);
errX = (0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01);
errX = 15 * errX;%的误差是可见的
errorbar (X, Y, errX);
7评论
斯科特·麦肯齐
斯科特·麦肯齐 2021年5月23日
我不熟悉曲线拟合工具。有可能一个属性命名 MarkerSize 你可以改变控制标记的大小(即。数据点)。看看你能不能找到它的工具。祝你好运。

登录置评。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!