Matlab实现求合成不确定度
程序员文章站
2024-03-01 17:14:46
...
大雾实验中算合成不确定度挺麻烦的,所以用matlab写了一个函数来求。
此函数可以求和差形式(例如z = x + y)或积商形式函数(V = pi*r^2*h)
1.源代码:
function [uc] = Uncertainty(fun,Syms,x,u)
%abstract 输入多元函数,变量数组,变量取值数组,不确定度数组,可求合成不确定度
% 此处显示详细说明
len = length(x);
item = zeros(1,len);
for i=1:len
diffxi = matlabFunction(diff(fun,Syms(i))+0.01010101*sum(Syms));
item(i) = ((diffxi(x(1),x(2),x(3))-0.01010101*sum(x))*u(i))^2;%根据需要增删
%假如fun有四个变量,则改为diffix(x(1),x(2),x(3),x(4))
end
uc = sqrt(sum(item));
end
2.应用举例:
Syms a b c;%创建三个变量 a,b,c分别为外径、内径、高度
SYMS = [a,b,c];
V = @(a,b,c) pi/4*(a^2-b^2)*c;%创建函数句柄
%匿名函数内变量符号最好按增序排列
x = [9.8,4.5,5];%测量值
u = [0.005,0.005,0.005];%不确定度
uc = Uncertainty(V,SYMS,x,u);
上一篇: 判断一个三维坐标点在不在一个面上,不确定有没有问题
下一篇: 前期学习小程序需要注意的几个点