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

📄 fourier.cpp

📁 这是我编的利用傅立叶系数法计算积分的代码。
💻 CPP
字号:
#include <iostream.h>
#include <math.h>

#define pi 3.1415926535//给圆周率赋值

double power (double x, int k);//输出x的n次方的函数

double difff (double x, int k);//输出函数x*cos(x)的n阶导数的函数

void main ()
{
	cout<<"傅立叶法计算函数f(x)=x*cos(x)*sin(30x)在区间0到2pi上的积分"<<endl;
	int k=0;
	int n=0;//控制精度的阶数为n阶
	double I=0;//积分值,初始值为0
	double In=0;//级数求和的第n项的值
	double error=10000;
	while (error>0.000001||error<-0.000001)
	{
		In=(-1)*(difff(2*pi,k)*cos(double(k)*pi/2+30*2*pi)-difff(0,k)*cos(double(k)*pi/2+30*2*0))/power(30,k+1);
		I+=In;
		error=2*pi/power(30,k+1);//误差余项
		cout<<"k="<<k<<"  "<<"In="<<In<<"  "<<"I="<<I<<endl;
		k++;
	}
}

double difff (double x, int k)
{
	 if(k%2==1) 
		 return power(-1,(k-1)/2)*k*cos(x)+power(-1,(k+1)/2)*x*sin(x);
	 else
		 return power(-1,(k)/2)*k*sin(x)+power(-1,(k)/2)*x*cos(x);
}

double power (double x, int k)
{
	if (k==0)
	return 1;
	else
		return x*power(x, k-1);
}

⌨️ 快捷键说明

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