误差传播是现代科学的核心兴趣所在,在大多数情况下,误差传播是通过假设参数的高斯误差和计算偏导数来实现的(见https://en.wikipedia.org/wiki/Propagation_of_uncertainty#Simplification)。
然而,这种方法有三个主要的缺点:
a)它只对线性函数或者可以很好地用线性函数逼近的函数是完全正确的,但在f(a,b) = a/b的情况下,当比率变得很小,误差仍然很大(见例2)。
b)在简单的版本是不可能合并参数有不同的误差分布,高斯分布(如二项)
c)对于复杂函数来说,偏导数的计算非常繁琐
我们编写了一个简单的基于蒙特卡罗的错误传播,它可以防止所有这些缺点。文件的例子。m包含了如何使用该方法的各种不同的具体例子,并显示了简单高斯误差传播方法在哪里失效。多亏了现代计算机,这种方法允许通过数值蒙特卡罗参数生成精确的误差传播。
该方法基本上由两个函数组成:generateMCparameters和propagateErrorWithMC
第一部分用以下选项生成MC参数值的分布:
错误类型:高斯,二项,bootstrapMean, bootstrapDistribution
% params:取决于错误类型(高斯:x,dx;二项:n, k;引导:数组测量值
plot(可选)plot最终分布
% numSamples(可选)MC样品数量
7.39 KB, 下载次数: 0, 下载积分: 体力 -2 点
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |