⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simposn.c

📁 数值计算方法中几个重要的算法用VC++实现
💻 C
字号:
/******************************************/
/*                                        */
/*             复合辛普生                 */
/*                                        */
/******************************************/
#include<stdio.h>
#include<math.h>
#define type "%lf"   /*-数据类型-*/
#define epsilon 1e-8
typedef double Dtype;
Dtype f(Dtype x)
{
	return exp(x)*cos(x);
}
Dtype Df3(Dtype x)
{
	return -2*exp(x)*(cos(x)+sin(x));
}

void main()
{
	int k,n;
	Dtype a,b,h,sum,Sn;

	/*-输入区间[a,b]及n等分-*/
	printf("Please input [a,b]:\n");
    scanf(type type,&a,&b);
	/*-利用复合辛普生公式计算Sn-*/
	n=1;
	do{
		h=(b-a)/n;
		
		Sn=f(a);sum=0;
		for(k=0;k<=n-1;k++)
			sum+=f(a+k*h+h/2);
		Sn+=4*sum;
		sum=0;
		for(k=1;k<=n-1;k++)
			sum+=f(a+k*h);
		Sn+=2*sum+f(b);
		Sn=Sn*h/6;
		n=n+1;    /*-逐渐增加等分数-*/
	}while(fabs(-1/(double)180*pow((h/2),(double)4)*(Df3(b)-Df3(a)))>epsilon);
   printf("n=%d,Sn="type,n-1,Sn);
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -