以矩阵形式找到与每个输入单独相关的方程的答案

时间:2014-03-04 09:08:08

标签: matlab

我正在尝试在MATLAB中重新创建以下等式

http://oi58.tinypic.com/2ypittg.jpg

此公式计算等效惯量。

我有Ln,Ln-1和In的值存储在矩阵中,我假设Ltotal只是Ln的Max值。 Den是存储等式值的矩阵。

% Ln
for lp = 1: bars-1
   ln_p(1,lp) = radius_pin(1) - radius_pin(lp+1);
   ln_w(1,lp) = radius_wheel(1) - radius_wheel(lp+1);
end

% Ln-1
for lp = 1:bars-1
   lnMinus_p(1,lp) = radius_pin(1) - radius_pin(lp);
   lnMinus_w(1,lp) = radius_wheel(1) - radius_wheel(lp);
 end 

% L^3 - (Ln-1)^3
lCubed_p = ln_p.^3 - lnMinus_p.^3;
lCubed_w = ln_w.^3 - lnMinus_w.^3;

% In
  In_p = aChor_p.^3/12;
  In_w = aChor_w.^3/12;

% Denominator of IE equation (inertia)
den_p = lCubed_p./In_p;
den_w = lCubed_w./In_w;

我需要一个能找到Ieq值的代码(它们应该在与输入相同的矩阵中)

1 个答案:

答案 0 :(得分:0)

如果您有一个包含所有L值的数组L_n,以及值I的向量I_n类似,那么您的等式可以简单地实现:< / p>

I_eq = L_total^3 / sum( diff(L.^3)./I(2:end) )

我也会重新编写你的代码,因为你似乎忽略了关于MATLAB语法的观点 - 它可能非常接近数学符号。我将省略下标(因为无论如何它对引脚和滚轮的计算都是相同的):

lCubed = (radius(1)-radius(2:end)).^3 - (radius(1)-radius(1:end-1)).^3;
In     = 1/12 * aChor_p.^3; 
den    = sum(lCubed./In);