Monte Carlo 数值积分
var amount = 0.0d;
var hitTheTargetCount = 0.0d;
var M = 2.0d;
var rnd=new Random();
for (int i = ; i < ; i++)
{
var x = rnd.NextDouble() * Math.PI;
var y = rnd.NextDouble() * M;
//Console.WriteLine("x:{0},y:{1}", x, y);
if (y <= Math.Sin(x))
{
hitTheTargetCount++;
}
amount++;
} var s = (hitTheTargetCount / amount) * M * Math.PI;
Console.WriteLine(s);
以上代码针对 sin(x) 0-pi 进行积分
积分int( sqrt(1-x^2),0,1)
private void button1_Click(object sender, EventArgs e)
{
var amount = 0.0d;
var hitTheTargetCount = 0.0d;
var M = 1.0d;
var rnd=new Random();
for (int i = ; i < ; i++)
{
var x = rnd.NextDouble() * M;
var y = rnd.NextDouble() * M;
//Console.WriteLine("x:{0},y:{1}", x, y);
if (y <= Math.Sqrt(-Math.Pow(x,)))
{
hitTheTargetCount++;
}
amount++;
} var s = (hitTheTargetCount / amount) * M * M;
Console.WriteLine(s * );
} private void button2_Click(object sender, EventArgs e)
{
Func<double, double> func = (x) => { return (Math.Sqrt( - Math.Pow(x, ))); }; var n = ;
double h = 1.0d / n;
double sumx = ;
double sum = func(0.0); for (int i = ; i < n; i++)
{
sumx += h;
var factor = ((i % ) == ) ? : ;
//Console.WriteLine(i +":" + factor +"," + sumx);
sum += factor * func(sumx);
}
sum += func();
var v = * (sum * h) / ;
Console.WriteLine(v);
}
Monte Carlo 数值积分的更多相关文章
- Monte Carlo方法简介(转载)
Monte Carlo方法简介(转载) 今天向大家介绍一下我现在主要做的这个东东. Monte Carlo方法又称为随机抽样技巧或统计实验方法,属于计算数学的一个分支,它是在上世纪四十年代 ...
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...
- PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00 今天的主要内容:Markov Chain Monte Carlo,M ...
- Monte Carlo Approximations
准备总结几篇关于 Markov Chain Monte Carlo 的笔记. 本系列笔记主要译自A Gentle Introduction to Markov Chain Monte Carlo (M ...
- (转)Markov Chain Monte Carlo
Nice R Code Punning code better since 2013 RSS Blog Archives Guides Modules About Markov Chain Monte ...
- [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
http://www.cqt8.com/soft/html/723.html下载,官网下载 (转帖)1.定义: 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数 ...
- Introduction to Monte Carlo Tree Search (蒙特卡罗搜索树简介)
Introduction to Monte Carlo Tree Search (蒙特卡罗搜索树简介) 部分翻译自“Monte Carlo Tree Search and Its Applicati ...
- (转)Monte Carlo method 蒙特卡洛方法
转载自:维基百科 蒙特卡洛方法 https://zh.wikipedia.org/wiki/%E8%92%99%E5%9C%B0%E5%8D%A1%E7%BE%85%E6%96%B9%E6%B3%9 ...
- Introduction To Monte Carlo Methods
Introduction To Monte Carlo Methods I’m going to keep this tutorial light on math, because the goal ...
随机推荐
- 玩转单元测试之WireMock -- Web服务模拟器
玩转单元测试之WireMock -- Web服务模拟器 WireMock 是一个灵活的库用于 Web 服务测试,和其他测试工具不同的是,WireMock 创建一个实际的 HTTP服务器来运行你的 We ...
- Embed dll Files Within an exe (C# WinForms)—Winform 集成零散dll进exe的方法
A while back I was working on a small C# WinForms application in Visual Studio 2008. For the sake of ...
- 自动化脚本过程中出现This element neither has attached source nor attached Javadoc...的解决方法
This element neither has attached source nor attached Javadoc and hence no Javadoc could be found Ec ...
- C#算法之向一个集合中插入随机不重复的100个数
一道非常经典的C#笔试题: 需求:请使用C#将一个长度为100的int数组,插入1-100的随机数,不能重复,要求遍历次数最少. 1.最简单的办法 var rd = new Random(); Lis ...
- c# & Fizzler to crawl web page in a certain website domain
使用fizzler [HtmlAgilityPackExtension]和c#进行网页数据提取:fizzler是HtmlAgilityPack的一个扩展,支持jQuery Selector: 提取数据 ...
- linq 对Sum()函数的支持
首先看一段SQL语句: SELECT SUM(TASKAPPR) AS APPRCOUNT, SUM(TASKLOCKED) AS LOCKEDCOUNT, SUM(TASKCHECKED) AS C ...
- Add Binary <leetcode>
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- redis cluster搭建
一 .准备文件: Ruby :http://www.ruby-lang.org/en/downloads/ redis-3.0.5.tar.gz Redis:http://www.redis.c ...
- __iter__
[__iter__] 如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调 ...
- 【Tyvj1601】魔兽争霸(主席树,树套树)
题意:要求在N个数的序列中支持以下操作: 1:将第X个元素加上Y 2:询问当前K大值 n<=30000,m<=50000 思路:树状数组套主席树 Tyvj又炸了,还不知道对不对 ..12] ...