欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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.应用举例:

Matlab实现求合成不确定度

​​​​​​​

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);