用辛普森公式求近似值 n=4 保留小数点后六位 使用函数求e的近似值
更新时间:2021-10-08 11:04:09 • 作者:PERRY •阅读 5543
- 计算π的近似值,精确到小数点后6位。
- 用辛普森截断误差公式求出n≥3.7066,取n=4.但是为什么要将积分区间[0,1]划分为8等分?
- 编写程序利用公式:求e的近似值,精确到小数后6位
- C语言:计算圆周率(精度保留到小数点后6位),用程序实现,公式如下:
计算π的近似值,精确到小数点后6位。
π=3.1415926535897932384626……
绝对正确!!精确到小数点后6位是3.141593
用辛普森截断误差公式求出n≥3.7066,取n=4.但是为什么要将积分区间[0,1]划分为8等分?
辛普森公式,
每个区间上的积分要涉及到三个点:
区间的两个端点和区间的中点。
所以,实际等价于把每个积分区间等分成两个小区间,
所以,4个积分区间,
就等同于分成8个小区间
(要利用中间的7个等分点)
编写程序利用公式:求e的近似值,精确到小数后6位
main()
{int n,i;
double e,p,t;
printf("请输入n的值:");//这一语句在本例中没有作用,仅是依提示给出
scanf("%d",&n);//这一语句在本例中没有作用,仅是依提示给出,因下面的语句中没有用到变量n
e=1;t=1;p=1;i=1;do
{
e=e+t;
i++;
p=p*i;
t=1/p;
}
while(t>=1e-7);
printf("e=%f",e);
}
C语言:计算圆周率(精度保留到小数点后6位),用程序实现,公式如下:
1.
#include "stdio.h"
int main()
{
float pi=0.0f;
int i=0;
do
{
pi+=1.0/(i*2+1)*(i%2?1:-1);
i++;
}while(1.0/i>0.00001);
pi*=4;
printf("pi=%0.5f",pi);
}
2.
#include "stdio.h"
int main()
{
double pi=1.0;
int i=1;
do
{
pi*=2.0*i/(2*i-1)*2.0*i/(2*i+1);
i++;
}while(i<100000);
pi*=2;
printf("pi=%0.5f",pi);
}