首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >符号模型函数传递给lmfit

符号模型函数传递给lmfit
EN

Stack Overflow用户
提问于 2022-07-28 14:20:59
回答 2查看 56关注 0票数 0

符号模型函数传递嗨!由于我的符号函数,我卡在了我的附件里,请告诉我这个问题是如何解决的。这是我的代码,我需要传递两个independent_var,分别是xCl和XI,以及一个is参数:

代码语言:javascript
复制
import numpy as np
import lmfit
import sympy as sp    
anion = {'I': 1, 'Cl': 1}
xa = {'xI': 0.2, 'xCl': 0.3}
xCl = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
xI = [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.1, 0.8, 0.11, 0.12]

def g(xa, anion, a):
    xzc = 0
    for k1, k2 in zip(anion, xa):
        xzc += sp.symbols(f"x{k1}") * sp.symbols(f"x{k2}") + a
    return xzc
obj = lmfit.Model(g, independent_vars=['xCl', 'xI'])
pars = obj.make_params(a=0.1)

result = mod.fit(ydat, pars, xCl, xI)
print(result.fit_report())

但我找到了;

代码语言:javascript
复制
**************************************************
Traceback (most recent call last):
  File "F:\Zohreh\MainZohreh\postdoc-field\CSU\pythonProject\simple_Lmfit.py", line 36, in <module>
    obj = lmfit.Model(g, independent_vars=['xCl', 'xI'])
  File "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\lmfit\model.py", line 277, in __init__
    self._parse_params()
  File "C:\Users\Zohreh\AppData\Roaming\Python\Python310\site-packages\lmfit\model.py", line 541, in _parse_params
    raise ValueError(self._invalid_ivar % (arg, fname))
ValueError: Invalid independent variable name ('xCl') for function g
*********************************************************
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-29 09:39:19

我发现,有必要用lambdify将渐近方程改为numpy方程。这样,就可以允许将ndarray浮子发送到lmfit模型。

票数 0
EN

Stack Overflow用户

发布于 2022-07-30 18:28:31

传递给independent_varslmfit.Model必须匹配模型函数的函数参数的名称。在您的示例中,模型函数具有g(xa, anion, a)签名,因此它们将是xaanionaxClxI作为自变量都没有意义--它们根本不是模型函数的变量。这就是例外

ValueError: Invalid independent variable name ('xCl') for function g

是在表达。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73154413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档