Search code examples
javascriptcomplex-numbers

how to divide complex numbers in javascript using prototype


I have created one multiplication of complex function using prototype in java-script

function ComplexNumber(real,imaginary) {
    this.real = real;
    this.imaginary = imaginary;
}
ComplexNumber.prototype = {
mult: function() {
         var multiplier = arguments[0];
         if(arguments.length != 1)
                multiplier = new ComplexNumber(arguments[0], arguments[1]);
         return new ComplexNumber(this.real * multiplier.real - this.imaginary * multiplier.imaginary,                    
         this.real * multiplier.imaginary + this.imaginary * multiplier.real);             
    },
 toString: function() {
       return this.real + " + " + this.imaginary + "j";
        }
 },
var complexA = new ComplexNumber(5, 8),
complexB = new ComplexNumber(3, 4),
complexSum = complexA.mult(complexB);
console.log(complexSum.toString());

I have to create division of complex number I tried but it didnt work... following is my div function :

div : function(){
         var multiplier = arguments[0];
         if(arguments.length != 1)
                multiplier = new ComplexNumber(arguments[0], arguments[1]);

        return new ComplexNumber((this.real * multiplier.real - this.imaginary * multiplier.imaginary,                    
         this.real * multiplier.imaginary + this.imaginary * multiplier.real)/( ((this.real)*(this.real))) +((this.multiplier)*(this.multiplier)));
    },

Solution

  • According to

    (a+ib)/(c+id)=(ac+bd+i(bc-ad))/(c^2+d^2)
    

    formula , you need this:

    var det = multiplier.real*multiplier.real + multiplier.imaginary * multiplier.imaginary;
    return new ComplexNumber(
      (this.real * multiplier.real + this.imaginary * multiplier.imaginary)/det,                    
      (this.imaginary * multiplier.real - this.real * multiplier.imaginary)/det
    );