用 Ruby 求定积分
galeki
posted @ 2008年6月16日 14:23
in RoR
, 4188 阅读
纯属无聊……
曾经以为求积分之类的是个很复杂的过程,对那些可以求出积分值的计算程序佩服不以,昨日脑子不知道为什么忽然想到这个问题,翻了翻书,发现这个问题很简单~
用最简单的矩形法,Ruby 代码如下:
-
def integral(a, b, n = 100)
-
sum = 0.0
-
dx = (b - a)/n.to_f
-
n.times do
-
a += dx
-
sum = sum + (yield a)*dx
-
end
-
sum
-
end
n 为精度,Ruby 的 block 真方便,如果要求:
那么就是:
-
integral(0, 1) {|x| x**2 - x**3}
如果要求:
那么就是:
-
integral(0, Math::PI) {|x| Math.sin(x)}
如果函数很复杂,也可以在外面定义一个 f(x),然后写成 integral(a, b) {|x| f(x)},相当美观~
看看结果:
-
puts integral(0, Math::PI) {|x| Math.sin(x)}
-
>> 1.99983550388745
的准确值是 2,看来精度还不错~
嗯嗯……其实本文的真正意义在于,很久很久之前给 is-Programmer 实现了插入 TeX 公式的功能,这是我第一次用上……
2022年7月02日 04:32
I appreciate your work , thanks for all the informative blog posts. Dog Blog
================
I was very pleased to find this website. I wanted to thank you for your time for this wonderful post!! I definitely enjoy reading it and I have you bookmarked to check out new stuff you blog post. Parenting Advice
==================
Youre so cool! I dont suppose Ive read anything like this before. So nice to find somebody with some original thoughts on this subject. realy thank you for starting this up. this website is something that is needed on the web, someone with a little originality. useful job for bringing something new to the internet! Photography Products
======================
I admire what you have done here. I love the part where you say you are doing this to give back but I would assume by all the comments that is working for you as well. Do you have any more info on this? Cryptocurrency
============================
I got what you mean , saved to bookmarks , very decent site. Global News
2022年7月02日 21:38
I am typically to blogging and i genuinely appreciate your posts. The content has truly peaks my interest. Let me bookmark your web site and maintain checking for brand spanking new information. Tilers
2022年7月03日 00:07
Looking for the best lawn mowing services Wollongong and Shellharbour wide? Call our Express Mowing local experts and see exceptional services! Lawn Mowing
2022年7月12日 04:57
ทดลองเล่นสล็อตฟรี joker หนึ่งในผู้ให้บริการสล็อตออนไลน์ที่ดีที่สุดมาแรงที่สุดเป็นอันดับ 1 ซึ่งมีการผลิตเกมสล็อตมากมายให้เลือกเล่นมากมาย. ทดลองเล่นสล็อต joker
2022年7月12日 17:18
joker สล็อต ฝาก10รับ100 ผู้ให้บริการสล็อตออนไลน์ที่มีเกมสล็อตให้เลือกเล่นมากมายหลากหลายเกมปัจจุบันมีการพัฒนาระบบให้มาพร้อมกับความทันสมัย joker สล็อต ฝาก10รับ100