Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.graphics.apps.gnuplot > #3684

Re: Undefined value during function evaluation

From Hans-Bernhard Bröker <HBBroeker@t-online.de>
Newsgroups comp.graphics.apps.gnuplot
Subject Re: Undefined value during function evaluation
Date 2017-06-27 21:44 +0200
Message-ID <erfqttF2ib5U1@mid.dfncis.de> (permalink)
References <c0cd7d4c-8778-4302-9cd7-f1ed87d5734b@googlegroups.com>

Show all headers | View raw


Am 27.06.2017 um 15:54 schrieb schmidtanna114@gmail.com:

> a=100000
> b=0.15e-3
> c=633e-9
> d=30
> e=880

> f(x)=((a)**2)*((b)**2)*((c/(pi*b*sin(atan((x-d)/e))))**2)*((sin((pi*b*sin(atan((x-d)/e)))/c))**2)

That's a somewhat suboptimal way of setting up your function.  It would 
make a lot more sense to do it more piecemeal:

# Let's refer to things by their usual name (some do without the pis...)
sinc(x)=sin(pi*x)/(pi*x)

# use atan2 instead of atan:
f1(x,d,e)=sin(atan2(x-d,e))
# Note: this doesn't really need to use trig functions.
# alternative:
#f1(x,d,e) = (x-d) / sqrt((x-d)**2 + e**2)

# Using these, and after spotting that f(x) consists of terms that are
# all_ squared, so the square can be moved to the outer edge, one gets:

f(x,a,b,c,d,e) = (a*b * sinc(b/c*f1(x,d,e)))**2

One thing this makes much easier to see is that there's a redundancy in 
your parameters:

	f(x,a*b,1,c/b,d,e)=f(x,a,b,c,d,e) for all k,x,a,...

Another thing more obvious is how this function's value can become 
undefined: for x==d, f1(x,d,e) is zero, so the argument to sinc() 
becomes zero, and you hit the function's undefined spot:


gnuplot> print f(d,a,b,c,d,e)
                ^
          undefined value

To avoid that, you can use sinc()'s continuous extension instead:

sinc(x) = (x == 0) ? 1.0 : sin(pi*x)/(pi*x)

Back to comp.graphics.apps.gnuplot | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Undefined value during function evaluation schmidtanna114@gmail.com - 2017-06-27 06:54 -0700
  Re: Undefined value during function evaluation Karl Ratzsch <mail.kfr@gmx.net> - 2017-06-27 18:01 +0200
  Re: Undefined value during function evaluation schmidtanna114@gmail.com - 2017-06-27 12:40 -0700
  Re: Undefined value during function evaluation Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-06-27 21:44 +0200
  Re: Undefined value during function evaluation schmidtanna114@gmail.com - 2017-06-28 07:16 -0700

csiph-web