?? d3r1.cpp
字號:
#include "iostream.h"
#include "math.h"
double func(double x)
{
return pow(x, 2) * (pow(x,2) - 2.0) * sin(x);
}
double fint(double x)
{
//integral of func
double aaa;
aaa = 4.0 * x * (pow(x,2) - 7.0) * sin(x);
return aaa - (pow(x , 4) - 14.0 * pow(x , 2) + 28.0) * cos(x);
}
void trapzd(double a, double b, double& s, int n)
{
double del,x,sum;
int j,it, tnm;
if (n ==1)
{
s = 0.5 * (b - a) * (func(a) + func(b));
it = 1;
}
else
{
it = (int)pow(2 , n - 2);
tnm = it;
del = (b - a) / tnm;
x = a + 0.5 * del;
sum = 0.0;
for (j = 1; j<=it; j++)
{
sum = sum + func(x);
x = x + del;
}
s = 0.5 * (s + (b - a) * sum / tnm);
}
}
void main()
{
//program d3r1
//driver for routine trapzd
int i;
const int nmax = 14;
double pio2 = 1.5707963;
double s,b,a = 0.0;
b = pio2;
cout<<endl;
cout<<"integral of func with 2^(n-1) points"<<endl;
cout<<"actual value of integral is: ";
cout<<(fint(b) - fint(a))<<endl;
cout<<endl;
cout<<" n approx.integral"<<endl;
cout.setf(ios::fixed|ios::right);
cout.precision(6);
for (i = 1; i<=nmax; i++)
{
trapzd(a, b, s, i);
cout.width(7);
cout<<i;
cout.width(16);
cout<<s<<endl;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -