?? 復(fù)化辛普森公式.cpp
字號:
// 復(fù)化梯形公式、復(fù)化辛普森公式
#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<<"梯形公式的結(jié)果:"<<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--復(fù)化梯形公式"<<endl;
cout<<"2--復(fù)化辛普森求積公式"<<endl;
cout<<"輸入你想進(jìn)行的操作:";
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<<"復(fù)化梯形公式的結(jié)果:"<<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<<"復(fù)化辛普森求積公式的結(jié)果:"<<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--復(fù)化公式"<<endl;
cout<<"輸入你想進(jìn)行的操作:";
cin>>p;
switch(p)
{
case 1:Trapezoid(a,b);
case 2:STrapezoid(a,b);
}
if(p==0) break;
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -