a eB@sddlZddlZddlZddlmZejfddZddZddZ d d Z d d Z d dZ ddZ ddZd&ddZddZddZddZddZddZd d!Zd"d#Zd$d%ZdS)'N) curve_fitcCs^g}g}tt|D]<}|||kr0|krnq||||||qt|||SN)rangelenappendr)xyxminxmaxfuncxfyfir /u1/labor_progs/Fajho2/FHeval.pydo_fit srcCs||_||_t|j|j||\}}|dt|dt|d|||d|_|d|_ |d|_ t t |}|d|_dS)Nu Előszakasz illesztése, x[; z], y = p0*x + p1Tr) base_startbase_endrrrlogstr fitreportbBasebase_abase_bnpsqrtdiagDbase_ameasr r paramscovsperrrrrfitbases"   r%c Cs|jstddS||_||_g}g}tt|jD]B}||j|krR|kr4nq4||j|||j|q4d}d}d}t dd|||||fd\} } | dt |d t |d | | | d |_ | d |_| d |_| d|_tt| } | d |_dS)NError: missing base fit @MbP?cSs|t| ||Srrexptabcrrr9zfitexp..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."    rAcsjstddSjs$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|dkrtg} g} ttjD]}jdj|krjkrnn.| j|| tj|jjjj|krjdkrnn| j|| j qddlm} | | | _d_d_ dtdntdS)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 cleardualfit)r!methodlimitr r rr>r?r@r"r#Z tandata_xZ tandata_yrGrrDrdualfitJs\"      **    rScCsd|_d|_dS)NF)rIrHrDrrrrPsrPc 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|_dSNrTrUrrT)rr6r9rrVrrrrrrWrMtrapaddr;rY)r!rZpresumrr\rrrgetTsOptimizeds :rac Cs|jstddS|js$tddS|j}t||j|j}g|_d}t t |j D]}|j ||krz|j |j |qTt|j ||j|j}t||j |d|j |d||j ||j ||}|j |j ||j|||qTd|_dSr^)rr6r9rrMrNrrrVrrrrrr_r;rY)r!rZZTk0r`rTkirrr getTsReviseds":&rcindepcCs|jstddS|dkr|jrZ||jkrs(  $>#  1(==