calculate_gravity.m

来自「利用matlab编了一个pendulum仿真的例子」· M 代码 · 共 24 行

M
24
字号
% calculate_gravity.m

%use symbolic math for measurement error
syms L g                    %original input variables (length, gravity)
T = 2*pi*sqrt(L/g);         %textbook equation period T=f(L,g)
f = char(finverse(T,g));    %solve for gravity g=f()
expr = strrep(f,'g','T');   %replace g with T in string expression
syms T                      %T variable now, not output function
g = expr                    %desired equation g=f(L,T)
dgdT = diff(g,T);           %partial derivative of g wrt T
dgdL = diff(g,L);           %partial derivative of g wrt L

%replace symbols L and T with numeric values
L = Ro*pixRes(1);       %length of pendulum (m)
T = period;             %period of oscillation (sec)
g0 = eval(char(g));     %calculate gravity (m/sec^2)

%measurement error
dL = Rerr*pixRes(1) + Ro*pixRes(2);             %length error (m)
dT = period*std(diff(t))/mean(diff(t));         %period error (sec)
dg = abs(eval(dgdT))*dT + abs(eval(dgdL))*dL;   %gravity error (m/sec^2)

disp(sprintf('Measured g = %.3g +/- %.2g m/sec^2 (%.2g%%)',g0,dg,dg/g0*100))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?