/* Calculate a natural logarithm using Simpson's Rule */ /* ∫ab​ f(x) dx ≈ (b-a)/(3n)[FIRST+4(sum of ODDs) +2(sum of EVENs)+LAST] */ aTobStrip : 1000$ a : 1$ b : 2$ /* log(b) */ funDom : makelist(n, n, a*aTobStrip, b*aTobStrip)$ listSize : length(funDom)$ evenIndex : sublist(makelist(n, n, 1, listSize), evenp)$ oddIndex : sublist(makelist(n, n, 2, listSize - 1), oddp)$ f(x) := 1/x$ funRan : makelist(f(n/aTobStrip),n, funDom)$ firstItem : funRan[1]$ lastItem : funRan[listSize]$ evenItems : makelist(funRan[n]*4, n, evenIndex)$ oddItems : makelist(funRan[n]*2, n, oddIndex)$ rangeSum : firstItem + lsum(n, n, append(evenItems, oddItems)) + lastItem$ answer : (b-a)/3/aTobStrip*rangeSum$ ev(answer, numer);