选用三种数值积分方法计算圆周率pi .
题目
选用三种数值积分方法计算圆周率pi .
答案
用4了四种方法,另外还加了个龙格贝.
大人大量给分吧~
#include
using namespace std;
double getPI0(int h){
double l = 1.0/h;
int i,j;
double s = 0;
for(i = 0; i < h; i++){
s += l*(4/(1+((2*i+1)*l/2)*((2*i+1)*l/2)));
}
return s;
}
double getPI1(double h){
double l = 1.0/h;
int i,j;
double s = 0;
for(i = 0; i < h; i++){
s += l*(4/((1+i*l*i*l)))/2+l*4/(1+((i+1)*l*(i+1)*l))/2;
}
return s;
}
double getPI2(double h){
double l = 1.0/h;
int i,j;
double a,b;
double s = 0;
for(i = 0; i < h; i++){
a = i*l;
b = i*l+l;
double fa = 4/(1+a*a);
double fb = 4/(1+b*b);
double fab = 4/(1+(a+b)*(a+b)/4);
s += l*(fa+4*fab+fb)/6;
}
return s;
}
double fj(double a,int j){
int i;
double r = 1;
for(i = 0; i < j; i++){
r *= a;
}
return r;
}
double longBeiGe(double r){//r为给定的误差限
double * tm;
double * t;
tm = new double[1];
t = new double [2];
tm[0] = getPI1(1);
t[0] = getPI1(2);
t[1] = (4*t[0]-tm[0])/3;
int i = 1,j = 0;
while(t[i]-tm[i-1]>r){
tm = t;i++;
t = new double [i+1];
t[0] = getPI1(fj(2,i+1));
for(j = 1; j
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
- 印度是现在仍有老虎生活的少数几个国家之一用英语怎么翻译
- 一般一元一次不等式组,求另一个常数(如给一个含x的不等式组,求a的取值范围)取值范围问题怎么考虑
- 一质量为1kg的铝壶内盛有0.5kg的水,现将其从30摄氏度加热至50摄氏度,需吸收多少热量?
- 但少闲人如吾两人耳 特殊句式
- 已知a,b∈R,i是虚数单位.若a-i与2+bi互为共轭复数,则(a+bi)2=_.
- 1,2,3,4,7,9,13,16,23,27,31,.39,41,47,55,67,87,95哪些是合数,哪些是素数?
- 一道初二关于利率的数学题
- 中国历史上第三次大统一是由哪个朝代完成的?
- 右图为某市售盐酸试剂瓶上的部分数据
- 就靠你们了,帮我把句子补充完整:乌龟的眼睛小小的,仿佛( ).回答加50.
热门考点