📄 ex3.cpp
字号:
// ex3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<cmath>
using namespace std;
#define f(x) (4/(1+x*x)) //举例函数
#define epsilon 0.00001 //精度
//复化Simpson公式
float Simpson(float aa, float bb, long n)
{//aa,bb:端点 n,分区数
if (!(n%2)) //保证n为偶数
n = n+1;
long m = n/2;
float sum = 0;
float h = (bb-aa)/n; //步长
float sum1 = 0, sum2 = 0;
for (long i=0; i<m; i++)
{
sum1 += f(aa + (2*i+1)*h);
sum2 += f(aa + (2*i)*h);
}
sum = f(aa) + f(bb) + 2*sum2 + 4*sum1;
return (h*sum/3);
}
float computerT(float aa, float bb, long n)
{//aa,bb:端点 n,分区数
float sum = 0;
float h = (bb-aa)/n; //步长
for (long i=1; i<n; i++)
{
sum += f(aa + i*h);
}
sum += (f(aa) + f(bb))/2;
return (h*sum);
}
int _tmain(int argc, _TCHAR* argv[])
{
float a,b;
long n=2;
cout<<"y=4/(1+x*x),求积分"<<endl;
cout<<"Simpson积分and梯形积分,请输入积分范围a,b:"<<endl;
cin>>a>>b;
cout<<"辛甫生公式积分结果:"<<Simpson(a, b, n)<<endl;
cout<<"梯形公式积分结果:"<<computerT(a, b, n)<<endl;
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -