MATLAB: Finding Multiple Solutions to a Single Equation by Varying a Set of Variables

gearsMATLABmultivariable

Hi,
I am trying to find different gear tooth counts based on an equation for a gear ratio. I want the number of teeth for each gear to be from 20 to 60 teeth. The equation for the gear ratio is:
N = (G1 * G4) / ((G1-G3) * (G2-G1))
How would I go about getting a 4 column matrix with all the possible tooth count combinations?
Here is what I have so far:
N = 200; % Gear Ratio
G1 = 20:1:60; % Gear 1 tooth count
G2 = 20:1:60; % Gear 2 tooth count
G3 = 20:1:60; % Gear 3 tooth count
G4 = 20:1:60; % Gear 4 tooth count
N = (G1.*G4)./((G1-G3).*(G2-G1)); % Gear Ratio calculation
Also, is there a way to go about getting a range of the gear ratio as well? For example, if I wanted anything within +/- 5% of the desired ratio.
Thanks!

Best Answer

  • N = 200; % Gear Ratio
    G1 = 20:1:60; % Gear 1 tooth count
    G2 = 20:1:60; % Gear 2 tooth count
    G3 = 20:1:60; % Gear 3 tooth count
    G4 = 20:1:60; % Gear 4 tooth count
    [G1g, G2g, G3g, G4g] = ndgrid(G1, G2, G3, G4);
    N = (G1g.*G4g)./((G1g-G3g).*(G2g-G1g)); % Gear Ratio calculation
    Gear1 = G1g(:); Gear2 = G2g(:); Gear3 = G3g(:); Gear4 = G4g(:); Ratio = N(:);
    result = table(Gear1, Gear2, Gear3, Gear4, Ratio);
    This will be a table with nearly 3 million results ranging from -3600 to +3540 and over 135000 Inf results. There are 304995 unique results.