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>

on 2014-05-03 08:25

on 2014-05-03 09:30

maybe there is an error: sin((x / 23.0 - (x / 23)) = sin(0)

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 @linkedIn <http://ir.linkedin.com/in/taleghani>

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))) 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

on 2014-05-03 10:33

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>

on 2014-05-04 17:27

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

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

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 @linkedIn <http://ir.linkedin.com/in/taleghani>

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)
```