位置参数和函数的问题

2024-04-28 12:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scipy.odr分析三个数据集,我完全不知道如何调试这个特定问题。当我运行这个函数时,它告诉我我的函数*thin_lens1()*接受一个位置参数,但给出了两个位置参数。我尝试了一系列的重新排列,我仍然不知道我做错了什么,因为*thin_lens1()*唯一的论点是p1。如果有人能提供任何帮助,我将不胜感激,因为我完全被困在这里了

import numpy as np
import matplotlib.pyplot as plt
import scipy
import scipy.odr, scipy.special, scipy.stats


#importing data & defining focus length constants

p1,q1,up1,uq1,p2,q2,up2,uq2,p3,q3,up3,uq3 = 
np.loadtxt('lenses_data_processed.txt', 
                                     comments='#', unpack=True, 
usecols = range(0,12))

f1 = 158.695


#defining thin lens equation

def thin_lens1(p1):
    return (p1-f1)/(p1*f1)

#parameter guesses
p_guess = [1, 2]

#applying ODR
fit = scipy.odr.Model(thin_lens1)
mydata= odr.RealData(p1, q1, sx=up1, sy=uq1)
myodr = odr.ODR(mydata, fit, beta0 = p_guess, maxit=500)
myoutput = myodr.run()
myoutput.pprint()

Tags: 函数importdata参数asnpscipythin