📄 复化辛普森公式.cpp
字号:
// 复化梯形公式、复化辛普森公式
#include<iostream>
#include <iomanip>
#include<cmath>
using namespace std;
double f(double x)
{
double sum=0;
if(x==0) return 1;
sum=1/(1+x*x);
return sum;
}
void Trapezoid(double a,double b)
{
cout<<"梯形公式的结果:"<<setiosflags(ios::fixed)<<setprecision(11)<<(b-a)*(f(a)+f(b))/2<<endl;
}
int STrapezoid(double a,double b)
{
int n,k,q;double h;
cout<<"1--复化梯形公式"<<endl;
cout<<"2--复化辛普森求积公式"<<endl;
cout<<"输入你想进行的操作:";
cin>>q;
cout<<"请输入n的值:";
cin>>n;
h=(b-a)/double(n);
double sum=0;
sum+=(f(a)+f(b));
for(k=1;k<=n-1;k++) sum+=2*f(a+k*h);
if(q==1)
{
cout<<"复化梯形公式的结果:"<<setiosflags(ios::fixed)<<setprecision(11)<<(h/2)*sum<<endl;
return 1;
}
for(k=0;k<n;k++)
sum+=4*f(a+(k+0.5)*h);
cout<<"复化辛普森求积公式的结果:"<<setiosflags(ios::fixed)<<setprecision(11)<<(h/6)*sum<<endl;
return 1;
}
int main()
{
double a,b;
int p;
cout<<"请输入积分的下、上限:";
cin>>a>>b;
while(1)
{
cout<<"0--退出"<<endl;
cout<<"1--梯形公式"<<endl;
cout<<"2--复化公式"<<endl;
cout<<"输入你想进行的操作:";
cin>>p;
switch(p)
{
case 1:Trapezoid(a,b);
case 2:STrapezoid(a,b);
}
if(p==0) break;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -