Home > Blockchain >  Outputting results of loop of a loop
Outputting results of loop of a loop

Time:02-22

I am iteratively solving this implicit equation

(here)

using fsolve within a for loop over a range of values of the independent variable, V.

I also want to vary I_L and run the for loop over each value and generate an individual text files.

I know how to use the open and write text files, what I'm struggling with is setting loops up correctly to output what I want.

I have coded a simpler example below to allow for ease of understanding since it's just the loops I'm stuck on.

import numpy as np
from scipy.optimize import fsolve
import scipy.constants as sc

x = np.linspace(-1, 1, 1001)

C_vary = [0, 1, 2, 3]

def equation(y, x, C):
    return C - np.exp(x y) - y

for C in C_vary:
    
    y = []
    
   Solve equation at each value of C_vary and output y values to new list of
   results

CodePudding user response:

I have introduced an initial guess for the function y(x), but you can check the details further. The output y is a list, with each element corresponding to a value of the C_vary parameters, for each x.

import numpy as np
from scipy.optimize import fsolve
import scipy.constants as sc

x = np.linspace(-1, 1, 1001)
C_vary = [0, 1, 2, 3]

def equation(y, x, C):
    return C - np.exp(x y) - y

y0 = np.exp( 0.5*x ) #initial guess 
y  = [ fsolve( equation, y0, (x,ci) ) for ci in C_vary ]
  
  • Related