A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
|
|
@ -0,0 +1,2 @@
|
|||
: root-mean-square ( seq -- mean )
|
||||
[ [ sq ] map-sum ] [ length ] bi / sqrt ;
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
class Main
|
||||
{
|
||||
static Float averageRms (Float[] nums)
|
||||
{
|
||||
if (nums.size == 0) return 0.0f
|
||||
Float sum := 0f
|
||||
nums.each { sum += it * it }
|
||||
return (sum / nums.size.toFloat).sqrt
|
||||
}
|
||||
|
||||
public static Void main ()
|
||||
{
|
||||
a := [1f,2f,3f,4f,5f,6f,7f,8f,9f,10f]
|
||||
echo ("RMS Average of $a is: " + averageRms(a))
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
def quadMean = { list ->
|
||||
list == null \
|
||||
? null \
|
||||
: list.empty \
|
||||
? 0 \
|
||||
: ((list.collect { it*it }.sum()) / list.size()) ** 0.5
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
def list = 1..10
|
||||
def Q = quadMean(list)
|
||||
println """
|
||||
list: ${list}
|
||||
Q: ${Q}
|
||||
"""
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
sum = 0
|
||||
DO i = 1, 10
|
||||
sum = sum + i^2
|
||||
ENDDO
|
||||
WRITE(ClipBoard) "RMS(1..10) = ", (sum/10)^0.5
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
procedure main()
|
||||
every put(x := [], 1 to 10)
|
||||
writes("x := [ "); every writes(!x," "); write("]")
|
||||
write("Quadratic mean:",q := qmean!x)
|
||||
end
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
procedure qmean(L[]) #: quadratic mean
|
||||
local m
|
||||
if *L = 0 then fail
|
||||
every (m := 0.0) +:= !L^2
|
||||
return sqrt(m / *L)
|
||||
end
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
rms := method (figs, (figs map(** 2) reduce(+) / figs size) sqrt)
|
||||
|
||||
rms( Range 1 to(10) asList ) println
|
||||
|
|
@ -0,0 +1 @@
|
|||
rms=: (+/ % #)&.:*:
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
rms 1 + i. 10
|
||||
6.20484
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
' [RC] Averages/Root mean square
|
||||
|
||||
SourceList$ ="1 2 3 4 5 6 7 8 9 10"
|
||||
|
||||
' If saved as an array we'd have to have a flag for last data.
|
||||
' LB has the very useful word$() to read from delimited strings.
|
||||
' The default delimiter is a space character, " ".
|
||||
|
||||
SumOfSquares =0
|
||||
n =0 ' This holds index to number, and counts number of data.
|
||||
data$ ="666" ' temporary dummy to enter the loop.
|
||||
|
||||
while data$ <>"" ' we loop until no data left.
|
||||
data$ =word$( SourceList$, n +1) ' first data, as a string
|
||||
NewVal =val( data$) ' convert string to number
|
||||
SumOfSquares =SumOfSquares +NewVal^2 ' add to existing sum of squares
|
||||
n =n +1 ' increment number of data items found
|
||||
wend
|
||||
|
||||
n =n -1
|
||||
|
||||
print "Supplied data was "; SourceList$
|
||||
print "This contained "; n; " numbers."
|
||||
print "R.M.S. value is "; ( SumOfSquares /n)^0.5
|
||||
|
||||
end
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
to rms :v
|
||||
output sqrt quotient (apply "sum map [? * ?] :v) count :v
|
||||
end
|
||||
|
||||
show rms iseq 1 10
|
||||
|
|
@ -0,0 +1 @@
|
|||
RootMeanSquare@Range[10]
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
L: makelist(i, i, 1, 10)$
|
||||
|
||||
rms(L) := sqrt(lsum(x^2, x, L)/length(L))$
|
||||
|
||||
rms(L), numer; /* 6.204836822995429 */
|
||||
Loading…
Add table
Add a link
Reference in a new issue