function - Trying to Convert Semi-Complex Mathematical Formula into Javascript -


i newbie , have started trying write own app, first 1 calculator, i'm having trouble mathematical functions. have formula , have implemented javascript function, no matter do. can't seem correct return value.

here formula (used in pharmaceutical conversion):

enter image description here

methadone fudin factor (developed dr. jeffrey fudin , jason andrew fudin, b.eng., ms) formula when converting morphine methadone:

methadone mg = x/21 {5.7- 3*sin [90/((110/x)5 + 1)] - sin [90/((320/x)7 + 1)]}

x input parameter (morphine quantity)

my code:

function methadoneconvert (input){ console.log("methadone convert input = "+input);     var drug;     var pre1 = 110/input;     var sin1 = math.pow(110/input,5)+1;     var sin2 = 3*math.sin(sin1);     var sin3 = math.pow(320/input,7)+1;     var sin4 = 90/sin1;     var sin5 = 90/sin3;     var sin6 = math.sin(sin4);     var sin7 = math.sin(sin5);     var sin8 = 3*sin6;     input = input/21;     var input2 = 5.7-sin8-sin7;     drug = input*input2;     console.log("methadoneconvert result =  " + drug);     return drug; } 

30mg should return 8.1mg , @ moment returning wrong numbers.

i have tried simpler variations of code less steps didn't work, understanding of code maths limited.

would appreciate help, calculator used doctors.

edit: var sin2 redundant , done @ var sin8 instead , apologies obvious severe low understanding of implementing maths programs, 30 x returns 7.56 .

the returns dive downwards towards 50 , comes @ 60 should't happening, correlation should linear.

tips converting equations code

  • use variables make equation easier read.

  • make sure convert radians before using trig functions.

  • pay close attention order of operations.

function torads(angle) {    return angle * (math.pi / 180);  }    function methadoneconvert(x) {    console.log("methadone convert input  =", x, "mg");      var sin1 = math.sin(torads(90 / (math.pow(110 / x, 5) + 1)));    var sin2 = math.sin(torads(90 / (math.pow(320 / x, 7) + 1)));      var output = x / 21 * (5.7 - 3 * sin1 - sin2);      console.log("methadone convert output =", output.tofixed(1), "mg");    return output;  }    methadoneconvert(30);


Comments