🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27545

Re: Interpolacja Liniowa

#27545
From: rav
Date: Tue, 29 Jun 2010 09:08
34 lines
2608 bytes
On 28 Cze, 18:49, Bart Ogryczak <b.ogryc...@gmail.com> wrote:
> On Jun 26, 8:41 pm, rav <rafalgulin...@gmail.com> wrote:
>
> > Nie dziala kiedy x2-x1 == 0 (div by zero)
> > dlatego dodalbym sprawdzenie roznicy tych wartosci do funkcji
>
> > def getInterpolated(x0,y0, x1, y1):
> >     if x1 - x0 == 0:
> >         print 'x1 i x0 can\'t be equal'
> >         return None
> >     a = (y1 - y0) / (x1 - x0)
> >     b = y0 - a * x0
> >     def interpolate(x):
> >         return a * x + b
> >     return None
>
> Pythonistycznie, to raczej będzie tak:
>
> try:
>     a = (y2 - y1) / (x2 - x1)
>     b = ((-x1) * (y2 - y1) - (x2 - x1) * (-y1)) / (x2 - x1)
>     def interpolate(x):
>         return a * x + b
>     return interpolate
> except ZeroDivisionError:
>     print 'x1 i x0 can\'t be equal'
>     return None

Przy czestym x2-x1 == 0 "if" bedzie mniej kosztowny ale jezeli ten
warunek bedzie rzadko spelniony to faktycznie wyjatek jest lepszym
rozwiazaniem.

zrodelko:
http://stackoverflow.com/questions/2522005/cost-of-exception-handlers-in-python
Technical Details
Message-ID: <b523c0af-9d35-4585-b3cb-ddc4f33e7f71@t10g2000yqg.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!t10g2000yqg.googlegroups.com!not-for-mail
References: <76da39d8-1875-4b7e-b66b-a1ef32499279@u26g2000yqu.googlegroups.com> <i035le$ioj$1@news.onet.pl> <b189acfc-d1de-4cb3-8831-4e11e3d87054@d8g2000yqf.googlegroups.com> <031bca8d-171b-4d28-beb8-f64b45568212@r27g2000yqb.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!t10g2000yqg.googlegroups.com!not-for-mail
From: rav <rafalgulinski@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Interpolacja Liniowa
Date: Tue, 29 Jun 2010 02:08:58 -0700 (PDT)
Organization: http://groups.google.com
Lines: 35
Message-ID: <b523c0af-9d35-4585-b3cb-ddc4f33e7f71@t10g2000yqg.googlegroups.com>
References: <76da39d8-1875-4b7e-b66b-a1ef32499279@u26g2000yqu.googlegroups.com>  <i035le$ioj$1@news.onet.pl> <b189acfc-d1de-4cb3-8831-4e11e3d87054@d8g2000yqf.googlegroups.com>  <031bca8d-171b-4d28-beb8-f64b45568212@r27g2000yqb.googlegroups.com>
NNTP-Posting-Host: 217.74.69.70
Mime-Version: 1.0
X-Trace: posting.google.com 1277802538 15950 127.0.0.1 (29 Jun 2010 09:08:58 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 29 Jun 2010 09:08:58 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: t10g2000yqg.googlegroups.com; posting-host=217.74.69.70;  posting-account=Ck_xmQoAAAAlIhC9db8Qa96afXcAC5qh
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.6)  Gecko/20100625 Firefox/3.6.6,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit