定积分运算法则(定积分的基本计算方法)
定积分运算法则,定积分的基本计算方法。小编来告诉你更多相关信息。
本章内容来自《妙趣横生的算法》 一书中。
在解决实际问题时,有时会用到所谓的概率算法。概率算法允许在执行过程中随机地选择下一步的计算步骤,因此使用概率算法有时会大大地提高算法的效率,但有时也可能得不到问题的全部答案。
概率算法大致分为四类:数值概率算法,蒙特卡洛(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法,和舍伍德(Sherwood)算法。这里只介绍最为基础的数值概率算法。
数值概率算法常应用于解决数值计算的问题。应用数值概率算法往往只能得到问题的近似解,并且该近似解的精度一般随着计算时间的增加而不断提高。因为在一些数值问题中,不可能也没有必要计算出问题的精确解(例如:计算无理数π的取值等),因此,在解决一些数值计算的问题时,数值概率算法常能派上用场。
例子:设f(x)=1-x2,计算定积分:的值
分析:要计算的定积分值的几何含义就是图中阴影部分的面积。可以试想,如果随机地向图中虚线与x,y坐标轴所围成的正方形中投点,那么根据几何概率的知识可知,随机点落入阴影区域的概率即为阴影部分的面积与虚线与x,y坐标轴所围成的正方形的面积之比。计算定积分。
double Darts(int n)
double x,y;
time_t t;
int i,count = 0;
srand((unsigned)time(&t));
for(i=0;i<n;i++)
x = rand()%100/100.0;
y = rand()%100/100.0;
if(y<=1 - pow(x,2))
count++;
return (double)count/(double)n;/*返回落入阴影区域的点数与总点数n的比值*/
int n;
printf("Please input the accuracyn") ;/*输入精度,即投点数*/
scanf("%d",&n);
printf("The result is aboutn");/*输出计算结果*/
printf("%fn",Darts(n));
getche();
运行结果: