标签:
求定积分
(结果当时我没看到平均值)
//正常多项式求
#include<iostream> #include<cstdio> #include<cmath> using namespace std; double xishu[105]; int main() { int n; while (cin>>n) { if(n==0) continue; double ans1=0,ans2=0; double sta,end; for(int i=n;i>=0;i--) cin>>xishu[i]; cin>>sta>>end; for(int i=n;i>=0;i--) xishu[i]/=(i+1); for(int i=n;i>=0;i--) { ans1+=xishu[i]*pow(sta,i+1); ans2+=xishu[i]*pow(end,i+1); } double ans=(ans2-ans1)/(end-sta); printf("%.3lf\n",ans); } return 0; }
#include<cstdio> #include <cmath> #include<iostream> using namespace std; double xx[100]; int n; double fun(double x) { double ff=0; for(int i=0; i<=n; i++) { ff+=xx[i]*pow(x,i); } return ff; } int main() { while(cin>>n) { if(n==0) continue; double sta,end; for(int i=n; i>=0; i--) { cin>>xx[i]; } cin>>sta>>end; double ans=(fun(sta)+fun(end))/2.0; double h=(end-sta)/1000; for(int i=1; i<1000; i++) { ans+=(fun(sta+h*i)); } ans=(h*ans/(end-sta)); printf("%.3lf\n",ans); } }
#include<cstdio> #include<iostream> #include<cmath> const int N=1000; using namespace std; double xx[100]; int n; double fun(double x) { double ff=0; for(int i=0; i<=n; i++) { ff+=xx[i]*pow(x,i); } return ff; } double T(double a,double b,double n) { double h=(b-a)/N; double tt=(fun(a)+fun(b))/2.0; for(int i=1;i<N;i++) { tt+=fun(a+i*h); } return tt*h; } int main() { while(cin>>n) { if(n==0) continue; double sta,end; for(int i=n; i>=0; i--) { cin>>xx[i]; } cin>>sta>>end; double ans=(4*T(sta,end,2*N)-T(sta,end,N))/3.0; ans=ans/(end-sta); printf("%.3lf\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/sxy-798013203/p/5689565.html