用C#写的数值概率算法求定积分的小程序
来源:互联网 发布:慢性肾炎预后知乎 编辑:程序博客网 时间:2024/05/22 03:33
下面程序是求x平方在0-1积分的小例子,原理就是向一个定积分规定的区域内随机投入无数点,统计投入在函数曲线与坐标轴之间的点数比总点数乘此块区域面积就是积分。针对复杂积分,需要扩展的地方还是很多的,例如,函数不单调(统计总区域面积就麻烦多了),函数跨越上下象限(需要对坐标求下绝对值就可以)。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Jifen
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
...{
double jieguo = jifen(0, 1, Convert.ToInt32(textBox1.Text));//求0到1的积分,textBox1.Text是投点个数,默认是999999就比较准确了
textBox2.Text = Convert.ToString(jieguo);
}
private double jifen(int x, int y, int count)
...{
double a;
double b;
int fenzi=0;
Random rd = new Random();//随机对象
for (int i = 0; i < count; i++)
...{
a = x+(y-x)*rd.NextDouble();//得到随机投入的横坐标
b = (y * y) * rd.NextDouble();//得到随机投入的纵坐标
if (b < a * a)//求x平方积分,这里判断投点是否在其函数曲线下面
fenzi++;//是的话计数
}
return (double)fenzi / count * (y - x) * (y * y);//落入函数曲线下面的点数比总点数乘此块区域面积就是积分
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Jifen
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
...{
double jieguo = jifen(0, 1, Convert.ToInt32(textBox1.Text));//求0到1的积分,textBox1.Text是投点个数,默认是999999就比较准确了
textBox2.Text = Convert.ToString(jieguo);
}
private double jifen(int x, int y, int count)
...{
double a;
double b;
int fenzi=0;
Random rd = new Random();//随机对象
for (int i = 0; i < count; i++)
...{
a = x+(y-x)*rd.NextDouble();//得到随机投入的横坐标
b = (y * y) * rd.NextDouble();//得到随机投入的纵坐标
if (b < a * a)//求x平方积分,这里判断投点是否在其函数曲线下面
fenzi++;//是的话计数
}
return (double)fenzi / count * (y - x) * (y * y);//落入函数曲线下面的点数比总点数乘此块区域面积就是积分
}
}
}
- 用C#写的数值概率算法求定积分的小程序
- 概率算法求定积分的值
- 求定积分的算法模板
- 数值问题专题小结:自适应辛普森算法求定积分
- 求任意函数的定积分
- 【C】求函数的定积分
- 多态的方法求定积分
- 求定积分的通用函数
- 求定积分的程序,跟大家分享一下,有错的话请指出,谢谢!
- 用C语言程序实现黎曼和求定积分
- 用 Ruby 求定积分
- 用MATLAB求定积分
- 定积分的问题
- 定积分的技巧
- 定积分的定义
- 定积分的性质
- 编写一个求定积分的通用函数
- matlab-高数 求定积分的极限
- 我经常去的网站
- svn插件的安装
- check和unchecked整数算术
- javaMail发邮件
- 部分类
- 用C#写的数值概率算法求定积分的小程序
- 世界上七台最强大超级计算机[1]
- JDK1.6 Java Scripting Programmer's Guide 翻译
- 在Linux下各类电子书阅读解决方法
- 命名和可访问性
- 世界上七台最强大超级计算机[2]
- 世界上七台最强大超级计算机[3]
- 世界上七台最强大超级计算机[4]
- 流氓飘浮广告代码