Thanks I will work on it, Zohreh Karimzadeh *https://www.researchgate.net/profile/Zohreh-Karimzadeh* <https://www.researchgate.net/profile/Zohreh-Karimzadeh> Skype Name 49a52224a8b6b38b Twitter Account @zohrehkarimzad1 z.karimza...@gmail.com +989102116325 ((((((((((((((((Value Water)))))))))))))))
On Thu, Aug 18, 2022 at 5:25 PM gu...@uwosh.edu <gu...@uwosh.edu> wrote: > I think they should work. I think you are not passing them the correct > information from your model function. To restate Peter's comments in a > different way. The model function must return numerical values which can be > compared to your data for the fit algorithms to work. Do not try to do any > fitting until you have your model function doing that. > > Jonathan > > On Thursday, August 18, 2022 at 7:51:35 AM UTC-5 z.kari...@gmail.com > wrote: > >> But not working here. >> >> Zohreh Karimzadeh >> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >> Skype Name 49a52224a8b6b38b >> Twitter Account @zohrehkarimzad1 >> z.kari...@gmail.com >> +989102116325 <+98%20910%20211%206325> >> >> ((((((((((((((((Value Water))))))))))))))) >> >> On Thu, Aug 18, 2022 at 5:12 PM gu...@uwosh.edu <gu...@uwosh.edu> wrote: >> >>> Based on my experience developing fitting tools to be used by >>> undergraduates (see >>> https://jupyterphysscilab.github.io/jupyter_Pandas_GUI/) I think your >>> choice of lmfit and scipy.optimize are good options. >>> >>> Jonathan >>> >>> On Thursday, August 18, 2022 at 7:35:00 AM UTC-5 z.kari...@gmail.com >>> wrote: >>> >>>> Very useful, can I ask a question? >>>> If you need to make your expression in a symbolic way using sympy which >>>> includes log or exp. Which fitting library would you recommend to easily >>>> pass your sympy expression and get your fitted parameters. >>>> Zohreh Karimzadeh >>>> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >>>> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >>>> Skype Name 49a52224a8b6b38b >>>> Twitter Account @zohrehkarimzad1 >>>> z.kari...@gmail.com >>>> +989102116325 <+98%20910%20211%206325> >>>> >>>> ((((((((((((((((Value Water))))))))))))))) >>>> >>>> On Thu, Aug 18, 2022 at 4:49 PM Peter Stahlecker <peter.st...@gmail.com> >>>> wrote: >>>> >>>>> Most welcome! If I was of help, great! If not, I still enjoyed our >>>>> conversation. >>>>> >>>>> On Thu 18. Aug 2022 at 19:08, Zohreh Karimzadeh <z.kari...@gmail.com> >>>>> wrote: >>>>> >>>>>> thank you very much. >>>>>> Zohreh Karimzadeh >>>>>> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >>>>>> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >>>>>> Skype Name 49a52224a8b6b38b >>>>>> Twitter Account @zohrehkarimzad1 >>>>>> z.kari...@gmail.com >>>>>> +989102116325 <+98%20910%20211%206325> >>>>>> >>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>> >>>>>> >>>>>> On Thu, Aug 18, 2022 at 4:35 PM Peter Stahlecker < >>>>>> peter.st...@gmail.com> wrote: >>>>>> >>>>>>> Whatever they are, I believe your second return statement does not >>>>>>> work, because you are adding ‚things‘ which cannot be added. >>>>>>> I do not understand your program, but I do understand, that your >>>>>>> second return statement cannot work. >>>>>>> >>>>>>> On Thu 18. Aug 2022 at 18:56 Zohreh Karimzadeh <z.kari...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> L and K are independent variables that will be passed to minimize. >>>>>>>> Zohreh Karimzadeh >>>>>>>> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >>>>>>>> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >>>>>>>> Skype Name 49a52224a8b6b38b >>>>>>>> Twitter Account @zohrehkarimzad1 >>>>>>>> z.kari...@gmail.com >>>>>>>> +989102116325 <+98%20910%20211%206325> >>>>>>>> >>>>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Aug 18, 2022 at 4:08 PM Peter Stahlecker < >>>>>>>> peter.st...@gmail.com> wrote: >>>>>>>> >>>>>>>>> I just have no idea what >>>>>>>>> >>>>>>>>> np.sum((np.log(AV) + Vlam_est)**2) >>>>>>>>> >>>>>>>>> could possibly mean. np.log(VA) is an array of floats, that is an >>>>>>>>> array of *numbers*. >>>>>>>>> Vlam_est is a *function*. How you can add numbers and a function >>>>>>>>> I do not know.. >>>>>>>>> Vlam_est will become an array of numbers, once you give it the >>>>>>>>> arguments. >>>>>>>>> >>>>>>>>> NB: >>>>>>>>> it seems, that Vi_est uses the arguments alpha,.., eta, L, K >>>>>>>>> When you lambdify it, you skipped the arguments L and K. >>>>>>>>> Any reason for this? >>>>>>>>> >>>>>>>>> On Thu 18. Aug 2022 at 18:18 Zohreh Karimzadeh < >>>>>>>>> z.kari...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> It seems always an expression of parameters and independent >>>>>>>>>> variables is needed to be passed to fit and find parameters. >>>>>>>>>> Zohreh Karimzadeh >>>>>>>>>> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >>>>>>>>>> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >>>>>>>>>> Skype Name 49a52224a8b6b38b >>>>>>>>>> Twitter Account @zohrehkarimzad1 >>>>>>>>>> z.kari...@gmail.com >>>>>>>>>> +989102116325 <+98%20910%20211%206325> >>>>>>>>>> >>>>>>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Aug 18, 2022 at 3:28 PM Peter Stahlecker < >>>>>>>>>> peter.st...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> In your first return statement, where it works, you seem to >>>>>>>>>>> return a number. >>>>>>>>>>> In your second return, your a ‚mixture‘ of numbers and functions: >>>>>>>>>>> Vlam_est is a *function*, which requires four arguments as per >>>>>>>>>>> its definition. Would you not have to return Vlam_est(alpha, beta, >>>>>>>>>>> gamma, >>>>>>>>>>> eta) ? >>>>>>>>>>> >>>>>>>>>>> On Thu 18. Aug 2022 at 17:35 Zohreh Karimzadeh < >>>>>>>>>>> z.kari...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> the following code is ok when expression is passed as : >>>>>>>>>>>> >>>>>>>>>>>> import numpy as np >>>>>>>>>>>> from scipy.optimize import minimize, curve_fit >>>>>>>>>>>> from lmfit import Model, Parameters >>>>>>>>>>>> >>>>>>>>>>>> L = np.array([0.299, 0.295, 0.290, 0.284, 0.279, 0.273, 0.268, >>>>>>>>>>>> 0.262, 0.256, 0.250]) >>>>>>>>>>>> K = np.array([2.954, 3.056, 3.119, 3.163, 3.215, 3.274, 3.351, >>>>>>>>>>>> 3.410, 3.446, 3.416]) >>>>>>>>>>>> VA = np.array([0.919, 0.727, 0.928, 0.629, 0.656, 0.854, 0.955, >>>>>>>>>>>> 0.981, 0.908, 0.794]) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> def f(param): >>>>>>>>>>>> gamma = param[0] >>>>>>>>>>>> alpha = param[1] >>>>>>>>>>>> beta = param[2] >>>>>>>>>>>> eta = param[3] >>>>>>>>>>>> VA_est = gamma - (1 / eta) * np.log(alpha * L ** -eta + beta * >>>>>>>>>>>> K ** -eta) >>>>>>>>>>>> >>>>>>>>>>>> return np.sum((np.log(VA) - VA_est) ** 2) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> bnds = [(1, np.inf), (0, 1), (0, 1), (-1, np.inf)] >>>>>>>>>>>> x0 = (1, 0.01, 0.98, 1) >>>>>>>>>>>> result = minimize(f, x0, bounds=bnds) >>>>>>>>>>>> print(result.message) >>>>>>>>>>>> print(result.x[0], result.x[1], result.x[2], result.x[3]) >>>>>>>>>>>> >>>>>>>>>>>> but when the expression is passed as the following way: >>>>>>>>>>>> >>>>>>>>>>>> import numpy as np >>>>>>>>>>>> import sympy as sp >>>>>>>>>>>> from scipy.optimize import minimize, curve_fit >>>>>>>>>>>> from lmfit import Model, Parameters >>>>>>>>>>>> >>>>>>>>>>>> L = np.array([0.299, 0.295, 0.290, 0.284, 0.279, 0.273, 0.268, >>>>>>>>>>>> 0.262, 0.256, 0.250]) >>>>>>>>>>>> K = np.array([2.954, 3.056, 3.119, 3.163, 3.215, 3.274, 3.351, >>>>>>>>>>>> 3.410, 3.446, 3.416]) >>>>>>>>>>>> VA = np.array([0.919, 0.727, 0.928, 0.629, 0.656, 0.854, 0.955, >>>>>>>>>>>> 0.981, 0.908, 0.794]) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> def f(param): >>>>>>>>>>>> gamma, alpha, beta, eta = sp.symbols('gamma, alpha, beta, eta') >>>>>>>>>>>> gamma = param[0] >>>>>>>>>>>> alpha = param[1] >>>>>>>>>>>> beta = param[2] >>>>>>>>>>>> eta = param[3] >>>>>>>>>>>> Vi_est = gamma - (1 / eta) * sp.log(alpha * L ** -eta + beta * >>>>>>>>>>>> K ** -eta) >>>>>>>>>>>> Vlam_est = sp.lambdify((gamma, alpha, beta, eta), Vi_est) >>>>>>>>>>>> >>>>>>>>>>>> return np.sum((np.log(VA) - Vlam_est) ** 2) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> bnds = [(1, np.inf), (0, 1), (0, 1), (-1, np.inf)] >>>>>>>>>>>> x0 = (1, 0.01, 0.98, 1) >>>>>>>>>>>> >>>>>>>>>>>> result = minimize(f, x0, bounds=bnds) >>>>>>>>>>>> >>>>>>>>>>>> print(result.message) >>>>>>>>>>>> print(result.x[0], result.x[1], result.x[2], result.x[3]) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> I face difficulty: >>>>>>>>>>>> ********************************************* >>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\core\cache.py", >>>>>>>>>>>> line 70, in wrapper >>>>>>>>>>>> retval = cfunc(*args, **kwargs) >>>>>>>>>>>> TypeError: unhashable type: 'numpy.ndarray' >>>>>>>>>>>> >>>>>>>>>>>> During handling of the above exception, another exception >>>>>>>>>>>> occurred: >>>>>>>>>>>> >>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\core\cache.py", >>>>>>>>>>>> line 70, in wrapper >>>>>>>>>>>> retval = cfunc(*args, **kwargs) >>>>>>>>>>>> TypeError: unhashable type: 'numpy.ndarray' >>>>>>>>>>>> >>>>>>>>>>>> During handling of the above exception, another exception >>>>>>>>>>>> occurred: >>>>>>>>>>>> >>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>> File >>>>>>>>>>>> "F:\Zohreh\MainZohreh\postdoc-field\CSU\pythonProject\fit_test_2.py", >>>>>>>>>>>> line >>>>>>>>>>>> 26, in <module> >>>>>>>>>>>> result = minimize(f, x0, bounds=bnds) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_minimize.py", >>>>>>>>>>>> line 692, in minimize >>>>>>>>>>>> res = _minimize_lbfgsb(fun, x0, args, jac, bounds, >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_lbfgsb_py.py", >>>>>>>>>>>> line 308, in _minimize_lbfgsb >>>>>>>>>>>> sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, >>>>>>>>>>>> epsilon=eps, >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_optimize.py", >>>>>>>>>>>> line 263, in _prepare_scalar_function >>>>>>>>>>>> sf = ScalarFunction(fun, x0, args, grad, hess, >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_differentiable_functions.py", >>>>>>>>>>>> line 158, in __init__ >>>>>>>>>>>> self._update_fun() >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_differentiable_functions.py", >>>>>>>>>>>> line 251, in _update_fun >>>>>>>>>>>> self._update_fun_impl() >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_differentiable_functions.py", >>>>>>>>>>>> line 155, in update_fun >>>>>>>>>>>> self.f = fun_wrapped(self.x) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\scipy\optimize\_differentiable_functions.py", >>>>>>>>>>>> line 137, in fun_wrapped >>>>>>>>>>>> fx = fun(np.copy(x), *args) >>>>>>>>>>>> File >>>>>>>>>>>> "F:\Zohreh\MainZohreh\postdoc-field\CSU\pythonProject\fit_test_2.py", >>>>>>>>>>>> line >>>>>>>>>>>> 17, in f >>>>>>>>>>>> Vi_est = gamma - (1 / eta) * sp.log(alpha * L ** -eta + >>>>>>>>>>>> beta * K ** -eta) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\core\cache.py", >>>>>>>>>>>> line 74, in wrapper >>>>>>>>>>>> retval = func(*args, **kwargs) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\core\function.py", >>>>>>>>>>>> line 476, in __new__ >>>>>>>>>>>> result = super().__new__(cls, *args, **options) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\core\cache.py", >>>>>>>>>>>> line 74, in wrapper >>>>>>>>>>>> retval = func(*args, **kwargs) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\core\function.py", >>>>>>>>>>>> line 288, in __new__ >>>>>>>>>>>> evaluated = cls.eval(*args) >>>>>>>>>>>> File >>>>>>>>>>>> "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\sympy\functions\elementary\exponential.py", >>>>>>>>>>>> line 718, in eval >>>>>>>>>>>> coeff = arg.as_coefficient(I) >>>>>>>>>>>> AttributeError: 'ImmutableDenseNDimArray' object has no >>>>>>>>>>>> attribute 'as_coefficient' >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Zohreh Karimzadeh >>>>>>>>>>>> https://www.researchgate.net/profile/Zohreh-Karimzadeh >>>>>>>>>>>> Skype Name 49a52224a8b6b38b >>>>>>>>>>>> Twitter Account @zohrehkarimzad1 >>>>>>>>>>>> z.kari...@gmail.com >>>>>>>>>>>> +989102116325 <+98%20910%20211%206325> >>>>>>>>>>>> >>>>>>>>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>>>>>>>> >>>>>>>>>>>> Zohreh Karimzadeh >>>>>>>>>>>> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >>>>>>>>>>>> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >>>>>>>>>>>> Skype Name 49a52224a8b6b38b >>>>>>>>>>>> Twitter Account @zohrehkarimzad1 >>>>>>>>>>>> z.kari...@gmail.com >>>>>>>>>>>> +989102116325 <+98%20910%20211%206325> >>>>>>>>>>>> >>>>>>>>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Aug 18, 2022 at 10:42 AM Peter Stahlecker < >>>>>>>>>>>> peter.st...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I use lambdify quite a bit, on rather large expressions. >>>>>>>>>>>>> Basically, it always works like this for me: >>>>>>>>>>>>> >>>>>>>>>>>>> import sympy as sm >>>>>>>>>>>>> x1, x2, …, xn = sm.symbols(‚x1, x2, ….., xn‘) >>>>>>>>>>>>> …. >>>>>>>>>>>>> … >>>>>>>>>>>>> expr = some expression of generally with me: sm.sin, sm.cos, >>>>>>>>>>>>> sm.exp, sm.sqrt, >>>>>>>>>>>>> sm.Heaviside, etc.. >>>>>>>>>>>>> This expression may have 50,000 terms, may be an (axb) matrix, >>>>>>>>>>>>> whatever. >>>>>>>>>>>>> >>>>>>>>>>>>> expr_lam = sm.lambdify([x1, x2, …,xn], expr) >>>>>>>>>>>>> >>>>>>>>>>>>> Now I can evaluate expr_lam(…) like I would evaluate any numpy >>>>>>>>>>>>> function. >>>>>>>>>>>>> >>>>>>>>>>>>> I have no idea, what expr_lam looks like, I would not know how >>>>>>>>>>>>> to look at it. >>>>>>>>>>>>> I assume, it converts sm.sin(..) to np.sin(…), etc >>>>>>>>>>>>> >>>>>>>>>>>>> This is how it works for me. >>>>>>>>>>>>> As I do not really understand your points, like ‚dynamically >>>>>>>>>>>>> created‘, ‚parse and subs‘, this may be of not help at all for >>>>>>>>>>>>> you. >>>>>>>>>>>>> >>>>>>>>>>>>> Peter >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Thu 18. Aug 2022 at 09:21 Zohreh Karimzadeh < >>>>>>>>>>>>> z.kari...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Before run I import sp.sqrt or sp.exp but after run they get >>>>>>>>>>>>>> disappeared. My expression is big and dynamically created and >>>>>>>>>>>>>> not >>>>>>>>>>>>>> possible to parse and subs np.exp or sp.exp. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Zohreh Karimzadeh >>>>>>>>>>>>>> >>>>>>>>>>>>>> Contact me on >>>>>>>>>>>>>> +989102116325 <+98%20910%20211%206325> >>>>>>>>>>>>>> and at >>>>>>>>>>>>>> z.kari...@gmail.com >>>>>>>>>>>>>> 🌧️🌍🌱 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Thu, 18 Aug 2022, 01:17 Aaron Meurer, <asme...@gmail.com> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Your expression uses "sqrt" but you haven't imported it from >>>>>>>>>>>>>>> anywhere, since you only did "import sympy as sp". You need to >>>>>>>>>>>>>>> use sp.sqrt. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Aaron Meurer >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed, Aug 17, 2022 at 11:02 AM Zohreh Karimzadeh < >>>>>>>>>>>>>>> z.kari...@gmail.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Here is my code: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> import matplotlib.pyplot as plt >>>>>>>>>>>>>>>> import numpy as np >>>>>>>>>>>>>>>> import sympy as sp >>>>>>>>>>>>>>>> import pandas as pd >>>>>>>>>>>>>>>> #exp_NaCl path: >>>>>>>>>>>>>>>> F:\Zohreh\MainZohreh\postdoc-field\CSU\Duplicat_Pure >>>>>>>>>>>>>>>> df = >>>>>>>>>>>>>>>> pd.read_excel(r'F:\Zohreh\MainZohreh\postdoc-field\CSU\Duplicat_Pure\data.xlsx', >>>>>>>>>>>>>>>> sheet_name='NaCl_exp') >>>>>>>>>>>>>>>> XNa = df['XNa'] >>>>>>>>>>>>>>>> XCl = df['XCl'] >>>>>>>>>>>>>>>> Xwater = df['Xwater'] >>>>>>>>>>>>>>>> Y = df['gama_x'] >>>>>>>>>>>>>>>> L=['WwaterNaCl', 'UwaterNaCl', 'VwaterNaCl', 'XCl', 'XNa', >>>>>>>>>>>>>>>> 'Xwater', 'BNaCl'] >>>>>>>>>>>>>>>> for j in range(len(L)): >>>>>>>>>>>>>>>> locals()[L[j]] = sp.symbols(L[j]) >>>>>>>>>>>>>>>> expr = >>>>>>>>>>>>>>>> -0.0118343195266272*BNaCl*XCl*XNa*(-2*(9.19238815542512*sqrt(XNa) >>>>>>>>>>>>>>>> + 9.19238815542512*sqrt(XCl + XNa) + >>>>>>>>>>>>>>>> 1)*exp(-9.19238815542512*sqrt(XNa) - 9.19238815542512*sqrt(XCl >>>>>>>>>>>>>>>> + XNa)) + 2)/((XCl + XNa)*(sqrt(XNa) + sqrt(XCl + XNa))**2) + >>>>>>>>>>>>>>>> 0.00591715976331361*BNaCl*XCl*(-2*(9.19238815542512*sqrt(XNa) >>>>>>>>>>>>>>>> + 9.19238815542512*sqrt(XCl + XNa) + >>>>>>>>>>>>>>>> 1)*exp(-9.19238815542512*sqrt(XNa) - 9.19238815542512*sqrt(XCl >>>>>>>>>>>>>>>> + XNa)) + 2)/(sqrt(XNa) + sqrt(XCl + XNa))**2 + >>>>>>>>>>>>>>>> 0.00591715976331361*BNaCl*XNa*(-2*(9.19238815542512*sqrt(XNa) >>>>>>>>>>>>>>>> + 9.19238815542512*sqrt(XCl + XNa) + >>>>>>>>>>>>>>>> 1)*exp(-9.19238815542512*sqrt(XNa) - 9.19238815542512*sqrt(XCl >>>>>>>>>>>>>>>> + XNa)) + 2)/(sqrt(XNa) + sqrt(XCl + XNa))**2 - >>>>>>>>>>>>>>>> 1.0*Cl*WwaterNaCl*Xwater*(0.5*XCl + 0.5*XNa + 0.5)/XCl - >>>>>>>>>>>>>>>> 0.5*Cl*WwaterNaCl/XCl - 4.0*UwaterNaCl*XCl*XNa*Xwater + >>>>>>>>>>>>>>>> 2.0*UwaterNaCl*XCl*Xwater + 2.0*UwaterNaCl*XNa*Xwater - >>>>>>>>>>>>>>>> 4.0*UwaterNaCl*XNa - 6.0*VwaterNaCl*XCl*XNa*Xwater**2 - >>>>>>>>>>>>>>>> 4.0*VwaterNaCl*XCl*Xwater**2 + 2.0*VwaterNaCl*XNa*Xwater**2 - >>>>>>>>>>>>>>>> 1.0*WwaterNaCl*Xwater*(0.5*XCl + 0.5*XNa + 0.5) + >>>>>>>>>>>>>>>> 2.0*WwaterNaCl*Xwater - 0.5*WwaterNaCl - >>>>>>>>>>>>>>>> 1.45739430799067*(0.707106781186548*sqrt(XNa) + >>>>>>>>>>>>>>>> 0.707106781186548*sqrt(XCl + XNa))*(-XCl - XNa + >>>>>>>>>>>>>>>> 1)/(9.19238815542512*sqrt(XNa) + 9.19238815542512*sqrt(XCl + >>>>>>>>>>>>>>>> XNa) + 1) - 1.45739430799067*(0.707106781186548*sqrt(XNa) + >>>>>>>>>>>>>>>> 0.707106781186548*sqrt(XCl + XNa))*(-1.4142135623731*sqrt(XNa) >>>>>>>>>>>>>>>> - 1.4142135623731*sqrt(XCl + XNa) + >>>>>>>>>>>>>>>> 1)/(9.19238815542512*sqrt(XNa) + 9.19238815542512*sqrt(XCl + >>>>>>>>>>>>>>>> XNa) + 1) - 0.448429017843282*log(9.19238815542512*sqrt(XNa) + >>>>>>>>>>>>>>>> 9.19238815542512*sqrt(XCl + XNa) + 1) >>>>>>>>>>>>>>>> model_func = sp.lambdify(L, expr ) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> def f(param): >>>>>>>>>>>>>>>> BNaCl = param[0] >>>>>>>>>>>>>>>> UwaterNaCl = param[1] >>>>>>>>>>>>>>>> VwaterNaCl = param[2] >>>>>>>>>>>>>>>> WwaterNaCl = param[3] >>>>>>>>>>>>>>>> Y_est = model_func >>>>>>>>>>>>>>>> return np.sum((np.log(Y) - Y_est)**2) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> bnds = [(1, np.inf), (0, 1), (0, 1), (-1, np.inf)] >>>>>>>>>>>>>>>> x0 = (1, 0.01, 0.98, 1) >>>>>>>>>>>>>>>> con = {"type": "eq", "fun": c} >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> result = minimize(f, x0, bounds=bnds) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> print(result.fun) >>>>>>>>>>>>>>>> print(result.message) >>>>>>>>>>>>>>>> print(result.x[0], result.x[1], result.x[2], result.x[3]) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> while I got : >>>>>>>>>>>>>>>> NameError: name 'sqrt' is not defined >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Zohreh Karimzadeh >>>>>>>>>>>>>>>> *https://www.researchgate.net/profile/Zohreh-Karimzadeh* >>>>>>>>>>>>>>>> <https://www.researchgate.net/profile/Zohreh-Karimzadeh> >>>>>>>>>>>>>>>> Skype Name 49a52224a8b6b38b >>>>>>>>>>>>>>>> Twitter Account @zohrehkarimzad1 >>>>>>>>>>>>>>>> z.kari...@gmail.com >>>>>>>>>>>>>>>> +989102116325 <+98%20910%20211%206325> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> ((((((((((((((((Value Water))))))))))))))) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Aug 17, 2022 at 7:46 PM Peter Stahlecker < >>>>>>>>>>>>>>>> peter.st...@gmail.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I use lambdify(....) a lot, but always like this: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> x = sympy.symbols('x') >>>>>>>>>>>>>>>>> expr = symy.S(10.) * sympy.sqrt(x) >>>>>>>>>>>>>>>>> expr_lam = sympy.lambdify([x], expr) >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> a = expr_lam(10.) >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> This seems to work for me. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Wed 17. Aug 2022 at 20:38, Zohreh Karimzadeh < >>>>>>>>>>>>>>>>> z.kari...@gmail.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Dear sympy group >>>>>>>>>>>>>>>>>> Thanks for your sympy. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I am working on a code, after creating my big expression >>>>>>>>>>>>>>>>>> using sympy it includes sqrt. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I need to lambdify my expression to make it consistent >>>>>>>>>>>>>>>>>> with numpy and other suffs. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> expr =10 * sp.sqrt(sp.symbols('x')) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> model_func = sp.lambdify('x', expr) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> But I found my expression after lambdifying becomes >>>>>>>>>>>>>>>>>> somethings like this: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 10*sqrt(x) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> while I need : >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 10*numpy.sqrt(x) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Could possibly let me know how get sqrt to work with >>>>>>>>>>>>>>>>>> numpy? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Zohreh >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> 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/1f0b313f-31c5-402e-991e-142a556016f4n%40googlegroups.com >>>>>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/1f0b313f-31c5-402e-991e-142a556016f4n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> 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/CABKqA0ZoGwsadsk4SWCbJVMbCDwXcO_gNGumJH00GAeEFod7Cw%40mail.gmail.com >>>>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CABKqA0ZoGwsadsk4SWCbJVMbCDwXcO_gNGumJH00GAeEFod7Cw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> 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%2B1XYLPRvXZ6jiJbUS_xpWNKqMuUH7Kt5evue%2BwKEwDMvGekBQ%40mail.gmail.com >>>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CA%2B1XYLPRvXZ6jiJbUS_xpWNKqMuUH7Kt5evue%2BwKEwDMvGekBQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> 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/CAKgW%3D6JfUmU7Uu%2BSrcA1STxVvWWm7bGWE%3Dit8CTchksTC0Qk7g%40mail.gmail.com >>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CAKgW%3D6JfUmU7Uu%2BSrcA1STxVvWWm7bGWE%3Dit8CTchksTC0Qk7g%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>>>> . >>>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> 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%2B1XYLPiCR%3DS2Fac3FZtjMpspqB7BRKtYEi45BVWPjkizVbNvw%40mail.gmail.com >>>>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CA%2B1XYLPiCR%3DS2Fac3FZtjMpspqB7BRKtYEi45BVWPjkizVbNvw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>>> . >>>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> 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/CABKqA0b%3DF0akMH4oyg5%2By9dGvgrf_vvVJTnVhVduMP1f%2Bp1pFw%40mail.gmail.com >>>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CABKqA0b%3DF0akMH4oyg5%2By9dGvgrf_vvVJTnVhVduMP1f%2Bp1pFw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> 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%2B1XYLMK-fgpxc71GYzue5gJvd%3Dfj2sV6Dvhj8zrmVpPhiVk%2Bw%40mail.gmail.com >>>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CA%2B1XYLMK-fgpxc71GYzue5gJvd%3Dfj2sV6Dvhj8zrmVpPhiVk%2Bw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>> . >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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/CABKqA0aBsD2WhpTuQqzZGUK1pfkUyH4q3Om9DdBQOpoaaO4rqQ%40mail.gmail.com >>>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CABKqA0aBsD2WhpTuQqzZGUK1pfkUyH4q3Om9DdBQOpoaaO4rqQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> 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%2B1XYLNiQNVa_hg25e-_f8xs%2B2w88p7JC4ntneBrqO4YFajTgA%40mail.gmail.com >>>>>>>>>> <https://groups.google.com/d/msgid/sympy/CA%2B1XYLNiQNVa_hg25e-_f8xs%2B2w88p7JC4ntneBrqO4YFajTgA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>> . >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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/CABKqA0YedBPPLH73J6ScxkgNWN9_NCR-YvOcd7vpGX4SsGZj0g%40mail.gmail.com >>>>>>>>> <https://groups.google.com/d/msgid/sympy/CABKqA0YedBPPLH73J6ScxkgNWN9_NCR-YvOcd7vpGX4SsGZj0g%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>>>> 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%2B1XYLOkAu3fHK8Fm1eRoO8CQxkN70mnO%3DM7iNqeRg3bt44yZQ%40mail.gmail.com >>>>>>>> <https://groups.google.com/d/msgid/sympy/CA%2B1XYLOkAu3fHK8Fm1eRoO8CQxkN70mnO%3DM7iNqeRg3bt44yZQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> -- >>>>>>> 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/CABKqA0aeQ%3D47NmCUei%3DvtXwFyjs4dw%3DfZ%3DjQGqpJvsk68BRYHA%40mail.gmail.com >>>>>>> <https://groups.google.com/d/msgid/sympy/CABKqA0aeQ%3D47NmCUei%3DvtXwFyjs4dw%3DfZ%3DjQGqpJvsk68BRYHA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>>>> 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%2B1XYLMg7bq4X3iedc0u_9nwiKHXrFd8GV1%3DdUt9n255dcwJxw%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/sympy/CA%2B1XYLMg7bq4X3iedc0u_9nwiKHXrFd8GV1%3DdUt9n255dcwJxw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>>> 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/CABKqA0a6gewUiwcUHfk%3DR2fQVkwGgkefwYN0ziJoAesjKaabRg%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/sympy/CABKqA0a6gewUiwcUHfk%3DR2fQVkwGgkefwYN0ziJoAesjKaabRg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> 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/5d28146e-d335-4eb9-9d88-6d77b31c18fcn%40googlegroups.com >>> <https://groups.google.com/d/msgid/sympy/5d28146e-d335-4eb9-9d88-6d77b31c18fcn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > 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/0df4cadb-4fcb-4502-9017-2fdfea527f17n%40googlegroups.com > <https://groups.google.com/d/msgid/sympy/0df4cadb-4fcb-4502-9017-2fdfea527f17n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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%2B1XYLN%2BTHAumZMBfiFzkG%2Bev-ydHBTsZhh-tnT1PWsims%3D%2BrA%40mail.gmail.com.