# Forum: Ruby slope of the curve

on 2014-05-03 08:25
```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
on 2014-05-03 09:30
```maybe there is an error:
sin((x / 23.0 - (x / 23)) = sin(0)```
on 2014-05-03 09:36
`No, the second x/23 does integer division`
on 2014-05-03 10:08
```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
on 2014-05-03 10:28
```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)))

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```
on 2014-05-03 10:33
```actually in my case, x is always a positive integer...

Regards,
Ali R. Taleghani
+1(424) 279-4548
on 2014-05-04 17:27
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)))
>
>
> 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```
on 2014-05-04 17:49
```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```
on 2014-05-04 18:30
```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```
on 2014-05-04 19:35
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```
on 2014-05-05 07:19
```:-)

Regards,
Ali R. Taleghani
+1(424) 279-4548
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)```