Jonathan has recommended to use string instead of sympy approche to derive your model and -parameters. But I stated that my model is driven dynamically. It means, as an example for one term in model I have:
term_unca = 0 for k in anion: for j in cation: for i in neutral: term_unca += term_uncX - 2 * sp.symbols('X{0}'.format(str(i))) * sp.symbols(f'X{str(j)}') * \ sp.symbols(f'X{str(k)}') * ((cation[j] + anion[k]) ** 2 / (cation[j] * anion[k])) \ * sp.symbols(f'U{str(i)}{str(j)}{str(k)}') This way all the parameters should be created for each run of fitting. Zohreh Karimzadeh https://www.researchgate.net/profile/Zohreh-Karimzadeh Skype Name 49a52224a8b6b38b Twitter Account @zohrehkarimzad1 z.karimza...@gmail.com +989102116325 ((((((((((((((((Value Water))))))))))))))) Zohreh Karimzadeh https://www.researchgate.net/profile/Zohreh-Karimzadeh Skype Name 49a52224a8b6b38b Twitter Account @zohrehkarimzad1 z.karimza...@gmail.com +989102116325 ((((((((((((((((Value Water))))))))))))))) On Fri, Aug 26, 2022 at 7:58 AM Peter Stahlecker <peter.stahlec...@gmail.com> wrote: > > Dear Zohreh, > > I think, you should describe precisely what you want, rather than referring > to previous correspondence. > Someone out there (likely not me) might have a solution to what you need - > but cannot be bothered to read through you previous correspondence. > > 1. > Parameter names should be made in a dynamic way. > what exactly do you mean by this? > Better give an example of what you would like to do. > > 2. > how using for loop in string can be simultaneously handled. > I have no idea, what your question is - and I am afraid, not many people > understand. > Better give an example of what you want to do. > > Peter > > On Fri 26. Aug 2022 at 04:42 Zohreh Karimzadeh <z.karimza...@gmail.com> wrote: >> >> As can be seen in the former script, parameter names should be made in a >> dynamic way. >> I am wondering how using for loop in string can be simultaneously handled. >> Regards, >> Zohreh Karimzadeh >> https://www.researchgate.net/profile/Zohreh-Karimzadeh >> Skype Name 49a52224a8b6b38b >> Twitter Account @zohrehkarimzad1 >> z.karimza...@gmail.com >> +989102116325 >> ((((((((((((((((Value Water))))))))))))))) >> >> >> On Wed, Aug 24, 2022 at 9:32 PM gu...@uwosh.edu <gu...@uwosh.edu> wrote: >>> >>> Zohreh, >>> >>> The code snippets you have provided do not suggest you are doing anything >>> that requires sympy. So, I am confused. It looks like you need a function >>> that generates a string of the summations in your expression, when passed >>> species. I think there is a fixed number of parameters for each species. >>> You are probably better off building the string for your expressions >>> without involving sympy. I am thinking something like this to define part >>> of your fit function: >>> >>> >>> def term(species_name): >>> >>> return(species_name+'_param1*conc_'+species_name+'+'+species_name+'_param2*np.sqrt(conc_'+species_name+')') >>> Then >>> term('Cl') >>> returns >>> 'Cl_param1*conc_Cl+Cl_param2*np.sqrt(conc_Cl)' >>> >>> Then build your overall expression from these pieces. Then do a fit with >>> initial guesses for all the parameters. >>> >>> That's how I would do it unless I am manipulating the expressions using >>> sympy first. >>> >>> Jonathan >>> On Wednesday, August 24, 2022 at 11:11:58 AM UTC-5 z.kari...@gmail.com >>> wrote: >>>> >>>> I should extract the required model for each system of chemicals and do a >>>> least squre for derived model and parameters to find the parameters for >>>> each chemical systems. >>>> >>>> >>>> Zohreh Karimzadeh >>>> >>>> Contact me on >>>> +989102116325 >>>> and at >>>> z.kari...@gmail.com >>>> 🌧️🌍🌱 >>>> >>>> On Wed, 24 Aug 2022, 19:33 gu...@uwosh.edu, <gu...@uwosh.edu> wrote: >>>>> >>>>> Zohreh, >>>>> >>>>> I pulled the paper. I see no reason you need to use SymPy to do the >>>>> numerical fitting. I would approach this by inputting the species in a >>>>> dictionary or list and then use that to call functions that generate the >>>>> computed value for each term/sum. Are you trying to keep track of the >>>>> complete symbolic expression or do a numerical calculation? >>>>> >>>>> If you are using chemical symbols or reactions, are you taking advantage >>>>> of ChemPy? >>>>> >>>>> Jonathan >>>>> On Tuesday, August 23, 2022 at 12:01:02 AM UTC-5 z.kari...@gmail.com >>>>> wrote: >>>>>> >>>>>> As following, I should generate each parameters dynamically (for 20-30 >>>>>> terms): >>>>>> >>>>>> term_vnca = 0 >>>>>> for k in anion: >>>>>> for j in cation: >>>>>> for i in neutral: >>>>>> term_vnca += term_vncX - 4 * 3 * sp.symbols(f'X{str(k)}') * >>>>>> sp.symbols('X{0}'.format(str(i))) \ >>>>>> ** 2 * sp.symbols(f'V{str(i)}{str(j)}{str(k)}') >>>>>> lnfXs = term_wnca + term_unca + term_vnca + termx_w_solvent1 + >>>>>> termx_w_solvent2 >>>>>> >>>>>> Zohreh Karimzadeh >>>>>> https://www.researchgate.net/profile/Zohreh-Karimzadeh >>>>>> Skype Name 49a52224a8b6b38b >>>>>> Twitter Account @zohrehkarimzad1 >>>>>> z.kari...@gmail.com >>>>>> +989102116325 >>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>> >>>>>> >>>>>> On Tue, Aug 23, 2022 at 9:26 AM Zohreh Karimzadeh <z.kari...@gmail.com> >>>>>> wrote: >>>>>>> >>>>>>> Not these model and parameters, My model is very complicated wit large >>>>>>> number of parameters: >>>>>>> >>>>>>> As a very simple example I raise this question. >>>>>>> Zohreh Karimzadeh >>>>>>> >>>>>>> Contact me on >>>>>>> +989102116325 >>>>>>> and at >>>>>>> z.kari...@gmail.com >>>>>>> 🌧️🌍🌱 >>>>>>> >>>>>>> >>>>>>> On Tue, 23 Aug 2022, 05:16 Peter Stahlecker, <peter.st...@gmail.com> >>>>>>> wrote: >>>>>>>> >>>>>>>> Dear Zohreh, >>>>>>>> >>>>>>>> Just for my understanding: >>>>>>>> 1. >>>>>>>> You params are alpha, betta ,gamma, eta (?) >>>>>>>> 2. >>>>>>>> What do you mean by generating them dynamically? >>>>>>>> >>>>>>>> Peter >>>>>>>> >>>>>>>> On Tue 23. Aug 2022 at 02:44 Zohreh Karimzadeh <z.kari...@gmail.com> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Dear Oscar >>>>>>>>> BIG help ! >>>>>>>>> Here I seriously need to use sympy to generate my params dynamically. >>>>>>>>> All Bests >>>>>>>>> Zohreh Karimzadeh >>>>>>>>> https://www.researchgate.net/profile/Zohreh-Karimzadeh >>>>>>>>> Skype Name 49a52224a8b6b38b >>>>>>>>> Twitter Account @zohrehkarimzad1 >>>>>>>>> z.kari...@gmail.com >>>>>>>>> +989102116325 >>>>>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>>>>> >>>>>>>>> >>>>>>>>> On Mon, Aug 22, 2022 at 7:42 PM Oscar Benjamin >>>>>>>>> <oscar.j....@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>> On Mon, 22 Aug 2022 at 15:36, Peter Stahlecker >>>>>>>>>> <peter.st...@gmail.com> wrote: >>>>>>>>>> > >>>>>>>>>> > Dear Oscar, >>>>>>>>>> > >>>>>>>>>> > Thanks for your hint about these parameters!. >>>>>>>>>> > Probably dumb question of mine: >>>>>>>>>> > Could one not define f_Vi_est directly as >>>>>>>>>> > >>>>>>>>>> > def_Vi_est(gamma, alfa, beta, eta, L, K, VA): >>>>>>>>>> > Vi_est = gamma - (1 / eta)….. >>>>>>>>>> > return np.sum(…..) >>>>>>>>>> > >>>>>>>>>> > without any ‚lambdification‘? >>>>>>>>>> >>>>>>>>>> Yes. In an earlier post the OP showed that they had working code like >>>>>>>>>> that but wanted to know how to do it using SymPy and lambdify. I >>>>>>>>>> presume there is a reason for wanting to use SymPy there (perhaps to >>>>>>>>>> accomplish something slightly different from the exact code shown). >>>>>>>>>> It's also possible that there isn't any actual reason to use SymPy >>>>>>>>>> for >>>>>>>>>> this at all though. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Oscar >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>>> Groups "sympy" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to sympy+un...@googlegroups.com. >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>> https://groups.google.com/d/msgid/sympy/CAHVvXxQJUuZ4tVnECPyWE%3DLd03hhhUB5mqv1bjHcjSNf9WP22Q%40mail.gmail.com. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "sympy" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to sympy+un...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/sympy/CA%2B1XYLOMV_i3VJXwwVN7JWnuJ9Wo6ZPhULmC1SOubAfFLt-DBQ%40mail.gmail.com. >>>>>>>> >>>>>>>> -- >>>>>>>> Best regards, >>>>>>>> >>>>>>>> Peter Stahlecker >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "sympy" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>>>> an email to sympy+un...@googlegroups.com. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/sympy/CABKqA0YTOzyZkjhnQmKQKQh-Mrc_H_TcmD9FrXObaTadkfLpkQ%40mail.gmail.com. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "sympy" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an >>>>> email to sympy+un...@googlegroups.com. >>>>> >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/sympy/17d62c5c-11d8-4b1b-9a44-ae67c8021832n%40googlegroups.com. >>>>> >>>>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sympy" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to sympy+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sympy/837a3351-3aa3-4e1e-98d6-b34f3185d5b2n%40googlegroups.com. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sympy+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/sympy/CA%2B1XYLMEq2OLN0npw8RHfghS7m6vgewkrpshqw8gBBU%2BfUAnoQ%40mail.gmail.com. > > -- > Best regards, > > Peter Stahlecker > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sympy+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CABKqA0b261cO3ixRjsp_YPU0Yk1ahRVgnEytcOkLrQUW-eHdwQ%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CA%2B1XYLONLyQLHomP6sRNTDt5kqY2wzDCAhK2inyyttK%3DBVq4%2BQ%40mail.gmail.com.