(1)、(2)
#include
#include
using namespace std;
double f(double x)
return pow(x,2);
int main()
double a,b,e;
int n;
cin>>a>>b>>e;
cin>>n;
double h=(b-a)/n;
double x[1000];
// x[0]=a;另外一種形式
double result_ti,result_simpson;
for(int i=0;i<=n;i++)
x[i]=a+i*h;
for(int k=0;kresult_ti+=(h/2)*(f(x[k])+f(x[k+1]));
result_simpson+=(h/6)*(f(x[k])+4*f((x[k]+x[k+1])/2)+f(x[k+1]));
for(int k=1;kx[k]=a+h*k;
mid_ti=(h/2)*(f(a)+2*f(x[k])+f(b));
// result_simpson=(b-a)/6*(f(a)+4f((a+b)/2)+f(b));
result_ti=(h/2)*(f(a)+mid_ti+f(b));
cout<
(3)//sin(x)/x in [0,1]1. 拉格朗日插值在高次插值時同原函式偏差大、存在龍格現象,高次插值多項式不收斂。#include
#include
#define eps 1e-12
using namespace std;
double a, b, h;
double fx(double x)
if (x==0)
return 1;
return sin(x)/x;
int main()
cin>>a>>b;
h = fabs(b-a);
double s1, s2, t1, t2, c1, c2, r1, r2;
double x, f;
t2 = t1 = (fx(a)+fx(b)) * h/2;
int k = 0;
r1=0; r2=1; h *= 2;
while (fabs(r2-r1)>eps)
cout1)
cout2)
cout3)
cout
s1 = s2;
if (k>1)
c1 = c2;
if (k>2)
r1 = r2;
k++; h/=2;
f = 0; x = a + h/2;
while (xf += fx(x);
x += h;
t2 = (t1 + h * f) / 2;
s2 = t2 + (t2 - t1)/3;
if (k==1)
continue;
c2 = s2 + (s2 - s1)/15;
if (k==2)
continue;
r2 = c2 + (c2 - c1)/63;
return 0;
2. 低次插值時,拉格朗日插值精度較高,與原值誤差較小
分段插值時,一般分段越多,精度相應越高
找規律#include using namespace std;
數值分析實驗 二 之數值積分與微分
1 用復化梯形公式的自動控制誤差演算法求積分。2 romberg積分演算法求積分。復化梯形公式 sy2 1.m檔案 myint 0,1,100 fun1.m檔案 function f fun1 x if x 0 x 1 f 1 else f sin x x endmyint,m檔案 function...
數值分析第二章 數值積分
數值積分部分考點總結 梯形公式,中矩形公式,辛甫生公式應當熟練掌握p59 機械求積法 求積結點和求積係數 節點的權 代數精度的定義 會計算給定求積公式的代數精度 在求積節點給定的情況下,求積公式的構造本質上是個線性方程組的代數問題 插值型求積公式 定理1 形如 p59 4 的求積公式至少具有 n次代...
數值積分(實驗三)
函式介面double simpsonintegral func fun,double a,double b,double eps,int n 其中,b 與 a 為積分上下限,eps 為誤差精度,n 為區間等分數,l 為加速次數,fun 為被積分函式的名稱 實現 include stdafx.h in...