柯特斯公式的matlab代码,牛顿-柯特斯公式C语言的实现.pdf

  • Post author:
  • Post category:其他


牛顿-柯特斯公式C语言的实现

实验四 .牛顿 -柯特斯公式 C 语言的实现

1.实验目的:

进一步熟悉牛顿 -柯特斯公式。

掌握编程语言字符处理程序的设计和调试技术。

2.实验要求:

输入:已知积分上下限以及想要得到的分段数 。

输出:根据牛顿 -柯特斯公式求出积分值 。

3.程序流程:

(1)输入积分上下限;

(2)分别输入想要得到的分段数;

(3)通过调用函数,求出积分值。

原理如下:

b a

设将积分区间 [a, b]划分成 n 等分 ,步长 h= ,

n

求积节点取为 xk=a+kh (k = 0,1,…… ,n), 由此构造插值型求积公式

n

I (b a) C( n) f ( x )

n k k

k 0

则其求积系数为

n k n

( n ) ( 1) n

Ck (t j )dt

nk !(n k)! 0 j k

程序流程图:

开始

输入积分上下限

输入分段数目

输出结果

程序如下:

#include

#include

using namespace std;

// 设置全局数组——牛顿 科特斯公式系数表

double C[6][7]={

{1.0/2,1.0/2},{1.0/6,4.0/6,1.0/6},{1.0/8,3.0/8,3.0/8,1.0/8},

{7.0/90,16.0/45,2.0/15,16.0/45,7.0/90},

{19.0/288,25.0/96,25.0/144,25.0/144,25.0/96,19.0/188},

{41.0/840,9.0/35,9.0/280,34.0/105,9.0/280,9.0/35,41.0/840}};

int main()

{

double a=0.0,b=0.0,Cotes=0.0;

int n=0;

cout<

cin>>a>>b;

cout<

cin>>n;

//检测输入

while(!(n>=1&&n<=6))

{

cout<

cin>>n;

}

//计算科特斯公式的值

for(int j=0;j<=n;j++)

Cotes=Cotes+C[n-1][j]*log((j*(b-a)/n)+a); // 函数 f(x) 为 f(x)=ln x 这里可以改成想要的