a 9zfitexp..p0u Exponenciális illesztése: x[rz], y = p0*exp(-p1 * x) + p2Trr)rprint exp_startexp_endrrrrrrrrrbExpexp_Aexp_bexp_crrrDexp_b) r!r r r r ra_guessb_guessc_guessr"r#r$rrrfitexp&s."    rAcsvjstddSjs$tddS|dks6|dkrlg}g}ttjD]F}jj|krnjkrLnqL|j||j |qLd}d}j }|dkrt dd |||||fd \} } d td nFt fd d ||||fd \} } dt j tdt j | | d_d_| d_| d_|dkr`| dnj _n|dks|dkrrg} g} ttjD]}jdj|krjkrnn.| j|| tj|jjjj|krjdkrnn| j|| j qddlm} | | | _d_d_ dtddS)Nz"Error in dualfit: missing base fitz!Error in dualfit: missing exp fitr+er'r(freecSs|t| ||Srr*r,rrrr1cr2zdualfit..r3uU Kettős illesztés: exponenciális előszakasz korrekció, y = p0*exp(-p1 * x) + cuTKettős illesztés: exponenciális előszakasz korrekció, y = p0*exp(-p1 * x) + ccs|t| |jSr)rr+r<)r-r.r/r!rrr1gr2ue Kettős illesztés: exponenciális előszakasz korrekció [fixált limesz], y = p0*exp(-p1 * x) + udKettős illesztés: exponenciális előszakasz korrekció [fixált limesz], y = p0*exp(-p1 * x) + TFrrr5splinesr)) CubicSplineu? Kettős illesztés: előszakasz korrekciója köbös spline-alu>Kettős illesztés: előszakasz korrekciója köbös spline-al)rr6r9rrrrrrrr<rrrrbBaseExp bBaseSpline baseexp_A baseexp_b baseexp_cFHutilflinrrr7Zscipy.interpolaterG basespline)r!methodlimitr r rr>r?r@r"r#Z tandata_xZ tandata_yrGrrDrdualfitJsZ"      **   rRc Cs*|jstddS|js$tddS|j}g|_tt|jD]}|j||krd|j|j |q>|j|}g}g}tt|jD]B}||j|kr|krnq||j|||j |qt ||j|}tt|D]}|||8<q|j|j ||j t ||q>d|_dS)NError: base fit not found Error: exponential fit not foundT)rr6r9rTsrrrrr getTkValuer;rMtrapcalcbTs)r! startpointrr-r r jTkrrrgetTss. &r\c Cs|jstddS|js$tddS|j}g|_d}tt|jD]}|j||krh|j|j |qBt ||j|}t ||j|d|j |d||j||j ||}|j|j ||j |qBd|_dS)NrSrTrrT)rr6r9rrUrrrrrrVrMtrapaddr;rX)r!rYpresumrr[rrrgetTsOptimizeds :r_indepcCs|jstddS|dkr|jrZ||jkrs$  $?#  1(7B