Forum: Ruby slope of the curve

6eeafa4ddac5f0649b1e9edc41dfe560?d=identicon&s=25 AliReza T. (alireza_t)
on 2014-05-03 08:25
(Received via mailing list)
Hi all;

I have a function with calculate a result as fallow:

res = (50.0 * (1.0 + sin((x / 23.0 - (x / 23)) * 360.0 * pi / 180.0)))
## and x is the variable  which vary on each call.

know I need the have the slope of the curve as each point! :-/
is there any method out? or any fast idea to let me find it out?
tnx

Regards,
Ali R. Taleghani
+1(424) 279-4548
@linkedIn <http://ir.linkedin.com/in/taleghani>
A95b192017db76e3d24fab72f93a966e?d=identicon&s=25 Wael E. (wael_e)
on 2014-05-03 09:30
(Received via mailing list)
maybe there is an error:
sin((x / 23.0 - (x / 23)) = sin(0)
9ba2536a78ce7c69d519a5bb9925d928?d=identicon&s=25 Kevin Mustelier (Guest)
on 2014-05-03 09:36
(Received via mailing list)
No, the second x/23 does integer division
6eeafa4ddac5f0649b1e9edc41dfe560?d=identicon&s=25 AliReza T. (alireza_t)
on 2014-05-03 10:08
(Received via mailing list)
I didn't found some thing special!
but it seems not to be a complex :-)
I the fallowing calculation to find the deviation out:

result = (50.0 * (1.0 + sin((z / 23.0 - (z / 23)) * 360.0 * pi /
180.0))).to_f.round(3)
slope = ((50.0 * (1.0 + sin(((z+1) / 23.0 - ((z+1) / 23)) * 360.0 * pi /
180.0)))-phys/1).to_f.round(3)



Regards,
Ali R. Taleghani
+1(424) 279-4548
@linkedIn <http://ir.linkedin.com/in/taleghani>
15000f55138ae94b0f362ed7c625461a?d=identicon&s=25 unknown (Guest)
on 2014-05-03 10:28
(Received via mailing list)
Am 03.05.2014 08:24, schrieb shayne.alone@gmail.com:
> I have a function with calculate a result as fallow:
>
> res = (50.0 * (1.0 + sin((x / 23.0 - (x / 23)) * 360.0 * pi / 180.0)))

Are you sure about this function?

x / 23.0 - (x / 23) evaluates to zero, assuming x is a Float.
(Which seems to be implied since you talk about the slope.)

Regards,
Marcus
6eeafa4ddac5f0649b1e9edc41dfe560?d=identicon&s=25 AliReza T. (alireza_t)
on 2014-05-03 10:33
(Received via mailing list)
actually in my case, x is always a positive integer...


Regards,
Ali R. Taleghani
+1(424) 279-4548
@linkedIn <http://ir.linkedin.com/in/taleghani>
F6a8f6a0c94010f7b6ab011d59e9a906?d=identicon&s=25 Eric MSP Veith (Guest)
on 2014-05-04 17:27
(Received via mailing list)
Attachment: signature.asc (836 Bytes)
On Saturday 03 May 2014 10:26:58, sto.mar@web.de wrote:
> > res = (50.0 * (1.0 + sin((x / 23.0 - (x / 23)) * 360.0 * pi / 180.0)))
>
> Are you sure about this function?
>
> x / 23.0 - (x / 23) evaluates to zero, assuming x is a Float.
> (Which seems to be implied since you talk about the slope.)

Not quite, since x/23 is an integer division, as Kevin pointed out. It's
the
same as x / 23.0 - floor(x / 23.0). Leaving arithmetic underflows [1]
aside,
it will be 0 iff x = i*23 (i = 1, 2, ..., n).

Still, finding the slope of f(x) at x means calculating f'(x), i.e.,
derive
f(x). Which has nothing to do with Ruby, but is a math question.

<https://en.wikipedia.org/wiki/Differentiation_rules> could help.

HTH

      --- Eric

[1] https://en.wikipedia.org/wiki/Arithmetic_underflow
85991f138ede6236f35eb98da22b7b01?d=identicon&s=25 Marvin Gülker (quintus)
on 2014-05-04 17:49
(Received via mailing list)
Maybe you are looking for #lambda?

----------------------------------------
anon_method = lambda do |x|
  x + 2
end

anon_method.call(4) #=> 6
----------------------------------------

Vale,
Quintus

--
Blog: http://www.quintilianus.eu

I will reject HTML emails.     | Ich akzeptiere keine HTML-Nachrichten.
                               |
Use GnuPG for mail encryption: | GnuPG für Mail-Verschlüsselung:
http://www.gnupg.org           | http://gnupg.org/index.de.html
15000f55138ae94b0f362ed7c625461a?d=identicon&s=25 unknown (Guest)
on 2014-05-04 18:30
(Received via mailing list)
Am 04.05.2014 17:27, schrieb Eric MSP Veith:
> On Saturday 03 May 2014 10:26:58, sto.mar@web.de wrote:
>> x / 23.0 - (x / 23) evaluates to zero, assuming x is a Float.
>> (Which seems to be implied since you talk about the slope.)
>
> Not quite, since x/23 is an integer division, as Kevin pointed out.
> It's the same as x / 23.0 - floor(x / 23.0). Leaving arithmetic
> underflows [1] aside, it will be 0 iff x = i*23 (i = 1, 2, ...,
> n).

Not quite, when you assume x to be a Float - as clearly stated
in my post - then x/23 is *not* an integer division.

> Still, finding the slope of f(x) at x means calculating f'(x),
> i.e., derive f(x). Which has nothing to do with Ruby, but is a math
> question.

On the other hand, when you assume x to be an Integer then f'(x) would
not be mathematically defined...

Probably the OP simply meant f(n+1) - f(n).

Regards,
Marcus
F6a8f6a0c94010f7b6ab011d59e9a906?d=identicon&s=25 Eric MSP Veith (Guest)
on 2014-05-04 19:35
(Received via mailing list)
Attachment: signature.asc (836 Bytes)
On Sunday 04 May 2014 18:29:24, sto.mar@web.de wrote:
> Not quite, when you assume x to be a Float - as clearly stated
> in my post - then x/23 is *not* an integer division.

You are right, I should have checked before.

---%<---
irb(main):001:0> x = 6
=> 6
irb(main):002:0> x / 23
=> 0
irb(main):003:0> x / 23.0
=> 0.2608695652173913
--->%---


      --- Eric
6eeafa4ddac5f0649b1e9edc41dfe560?d=identicon&s=25 AliReza T. (alireza_t)
on 2014-05-05 07:19
(Received via mailing list)
:-)

Regards,
Ali R. Taleghani
+1(424) 279-4548
@linkedIn <http://ir.linkedin.com/in/taleghani>
B078cb4f4fb473c7a54d1fc36d10c70e?d=identicon&s=25 Regis d'Aubarede (raubarede)
on 2014-05-05 15:39
AliReza T. wrote in post #1144791:

> know I need the have the slope of the curve as each point!

Here an example of slop() :

def f(x)
  return 50.0*(1.0+Math.sin((x / 23.0-(x/23))*360.0*Math::PI/180.0))
end

def slop(function,min,max,step=nil)
  step||=(max-min)/100.0
  min.step(max,step).map { |x|
     1.0*(function.call(x+step)-function.call(x))/step
  }
end

p slop(method(:f),0,180,1)
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.