0

1st timer here.

I am desperately trying to solve for "alpha" in the following code. The unknowns are "x" positive real, "u" and "v" are both real unknowns, can be positive or negative.

The code and the data are attached... I am expecting to plot "alpha" against "x2plot" and to see a smooth exponential that takes off at around x=3.0

I have mainly tried fsolve which is way too sensitive to initial guesses and I haven't found a good way to get good initial guesses. I tried minimizing the residue of the three functions using "fmin" on the residue function FNM. That didn't work well either...

I have been using ipython Jupyter notebook

%pylab inline
from __future__ import division 
import numpy as np
import scipy as sp
import scipy.optimize as opt
from scipy.optimize import fsolve
from mpmath import findroot
import matplotlib.pyplot as plt
import random
import sympy as sym
from sympy import re, im, E, I
from sympy import *

#Define as symbol, 1st unknown
x=sym.Symbol('x',positive=True);
u= sym.Symbol('u',real=True,imaginary=False);
v= sym.Symbol('v',real=True,imaginary=False);

eq1=2*u*(-0.0615396219281933*re(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000317132803998346*re(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*re(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*re(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 1.13819345524237e-6*re(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00723365433127392*re(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.0356752230845708*re(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000183845515711452*re(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 3.21246966639825e-5*re(exp(163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.204164722696278*re(exp(163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.00126399031417769*re(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 6.51373505397305e-6*re(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*re(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*re(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 5.54149775762546e-5*re(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.352183357508905*re(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) + 0.084470910424779*exp(-5.0e-6*x)*cos(1.02650696169076*pi) + 0.0102440068614612*exp(-5.0e-6*x)*cos(1.31326544782326*pi) + 0.00036295009061504*exp(-5.0e-6*x)*cos(1.71324151386762*pi) + 0.01767087224065*exp(-5.0e-6*x)*cos(0.339772409513898*pi) - 0.0512499003126759*exp(-5.0e-6*x)*cos(1.08386170577355*pi) + 0.608274954547168*exp(-5.0e-6*x)) + 2*v*(-0.0615396219281933*im(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000317132803998346*im(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*im(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*im(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 1.13819345524237e-6*im(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00723365433127392*im(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.0356752230845708*im(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000183845515711452*im(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 3.21246966639825e-5*im(exp(163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.204164722696278*im(exp(163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.00126399031417769*im(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 6.51373505397305e-6*im(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*im(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*im(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 5.54149775762546e-5*im(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.352183357508905*im(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.0360034690248089*exp(-5.0e-6*x)*sin(1.08386170577355*pi)) - 0.0215287203553126*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.100750383732398*exp(-163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.000156497416767226*exp(12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.00149484258319295*exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 3.21437169728499e-6*exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 9.07233434395226e-5*exp(163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.00149484258319295*exp(12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.00356963455801101*exp(12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.173794022515689*exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.0215287203553126*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.173794022515689*exp(12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.00356963455801101*exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.00149484258319295*exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 9.07233434395226e-5*exp(-163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 3.21437169728499e-6*exp(12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.00149484258319295*exp(12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.000156497416767226*exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.100750383732398*exp(163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) + 1.41873953032638*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0146561135539656*exp(-12400.3397724095*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0084963167502169*exp(163.313265447823*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0700596574030164*exp(12237.0265069617*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.000301028589309773*exp(12073.7132415139*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.000301028589309773*exp(-12073.7132415139*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0700596574030164*exp(-12237.0265069617*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.00849631675021689*exp(-163.313265447823*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0146561135539656*exp(12400.3397724095*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) - 0.72578

eq2=-0.119260086205931*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.558114892613269*exp(-163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.00086693008718743*exp(12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.00828080129211653*exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 1.7806271779712e-5*exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.000502569292596985*exp(163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.00828080129211653*exp(12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.0197742791065151*exp(12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.962746032519391*exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi) - 0.119260086205931*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.962746032519391*exp(12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.0197742791065151*exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.00828080129211653*exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.000502569292596985*exp(-163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 1.7806271779712e-5*exp(12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.00828080129211653*exp(12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.00086693008718743*exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) - 0.558114892613269*exp(163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi) + 7.85922228065608*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.08118872543479*exp(-12400.3397724095*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0470660332495666*exp(163.313265447823*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.388101133905988*exp(12237.0265069617*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.00166757219746571*exp(12073.7132415139*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.00166757219746571*exp(-12073.7132415139*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.388101133905988*exp(-12237.0265069617*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.0470660332495666*exp(-163.313265447823*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) + 0.08118872543479*exp(12400.3397724095*I*pi)*exp(-2.5e-6*x - 0.541930852886776*I*pi)*exp(-2.5e-6*x + 0.541930852886776*I*pi) - 1.37665198237885 + 2*(-0.0615396219281933*re(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000317132803998346*re(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*re(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*re(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 1.13819345524237e-6*re(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00723365433127392*re(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.0356752230845708*re(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000183845515711452*re(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 3.21246966639825e-5*re(exp(163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.204164722696278*re(exp(163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.00126399031417769*re(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 6.51373505397305e-6*re(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*re(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*re(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 5.54149775762546e-5*re(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.352183357508905*re(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) + 0.084470910424779*exp(-5.0e-6*x)*cos(1.02650696169076*pi) + 0.0102440068614612*exp(-5.0e-6*x)*cos(1.31326544782326*pi) + 0.00036295009061504*exp(-5.0e-6*x)*cos(1.71324151386762*pi) + 0.01767087224065*exp(-5.0e-6*x)*cos(0.339772409513898*pi) - 0.0512499003126759*exp(-5.0e-6*x)*cos(1.08386170577355*pi) + 0.608274954547168*exp(-5.0e-6*x))/v + 2*(-0.0615396219281933*im(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000317132803998346*im(exp(-12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*im(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*im(exp(-12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 1.13819345524237e-6*im(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00723365433127392*im(exp(-12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.0356752230845708*im(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.000183845515711452*im(exp(-163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 3.21246966639825e-5*im(exp(163.313265447823*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.204164722696278*im(exp(163.313265447823*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.00126399031417769*im(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 6.51373505397305e-6*im(exp(12073.7132415139*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.000529316521248901*im(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.00302921051182098*im(exp(12237.0265069617*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 5.54149775762546e-5*im(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x - 1.08386170577355*I*pi)) - 0.352183357508905*im(exp(12400.3397724095*I*pi)*exp(-5.0e-6*x + 1.08386170577355*I*pi)) - 0.0360034690248089*exp(-5.0e-6*x)*sin(1.08386170577355*pi))/u

eq3=u**2 + v**2 - 0.180519074236942;
    

I have tried fsolve and minimizing the residual function FNM using fmin to find initial guesses for x, u, v. Unfortunately fsolve ends up not improving on the initial guesses...

    Eq1=lambdify([x,u,v], eq1,"numpy")
    Eq2=lambdify([x,u,v], eq2,"numpy")
    Eq3=lambdify([x,u,v], eq3,"numpy")
    nbr=nbr+1
    
   def equations(p):
        uva1,uva2,uva3 = p
        eqn1=Eq1(uva1,uva2,uva3)
        eqn2=Eq2(uva1,uva2,uva3)
        eqn3=Eq3(uva1,uva2,uva3)
        return (eqn1,eqn2,eqn3)

    def fNM(p):
        return abs(sum(array(equations(p))**2)-0)
      

 
    #y1,y2,y3=fsolve(equations, (minimum[0], minimum[1], minimum[2]))
    #minimum =opt.fmin_bfgs(fNM, (y1,y2),disp=False)
    #minimum=opt.root(equations, [y1,y2,y3],method="lm")

    #y1=minimum.x[0];
    #y2=minimum.x[1];
    #y1,y2=fsolve(equations, (y1, y2))
    #minimum=opt.fmin(fNM, (y1,y2,y3),disp=False)
    #y1=minimum.x[0];
    #y2=minimum.x[1];
    #y3=minimum.x[2];
    #y1,y2,y3=fsolve(equations,[y1, y2,y3])
    

For the full problem please see my GitHub: [3 non-linear complex transcendental equation solver][1]

Thanks a lot!! [1]: https://github.com/GhoaTex/3NonLinearEqn

0 Answers0