我正在寻找一种算法,可以让我使用数学贝塞尔函数来表示复数。现在我找到了a promising result。 (我对 Bessel函数Jv和Yv感兴趣的是真实或复杂的参数和实际的命令。)
我正在使用Visual Studio 2010 Express C ++,现在我希望能够访问那里实现的那些功能。我该怎么做?
答案 0 :(得分:1)
下载此http://www.crbond.com/download/bessel.zip文件并将文件添加到Visual Studio项目中。要使用这些功能,您需要#include "BESSEL.h"
到您的源文件。
我通过执行以下操作在Visual Studio上编译它
_USE_MATH_DEFINES
添加到预处理器定义。#include <complex.h>
更改为#include <complex>
using namespace std;
添加到BESSEL.H
如何调用函数的示例:
#include "BESSEL.H"
#include <iostream>
int main() {
double x, i0, i1, k0, k1, i0p, i1p, k0p, k1p;
x = 5.0;
i0 = 1.0;
i1 = 2.0;
k0 = 3.0;
k1 = 4.0;
i0p = 5.0;
i1p = 6.0;
k0p = 7.0;
k1p = 8.0;
bessik01a(x, i0, i1, k0, k1, i0p, i1p, k0p, k1p);
// Results are stored in the variables i0..k1p
cout << i0 << " " << i1 << " " << k0 << " " << k1;
return 0;
}
答案 1 :(得分:0)
将上面链接的文件添加到您的项目中:
请注意,您必须编辑这些.cpp文件和.h文件中的旧头文件。更加具体: 变化
#include<complex.h>
到
#include<complex>
并使用namespace std。也适用于math.h
。
在main.cpp中,如上图所示:
#include <iostream>
using namespace std;
#include "BESSEL.H"
int main ()
{
complex<double> z = 3;
complex<double> J0;
complex<double> J1;
complex<double> Y0;
complex<double> Y1;
complex<double> J0p;
complex<double> J1p;
complex<double> Y0p;
complex<double> Y1p;
cbessjy01(z,J0,J1,Y0,Y1,J0p,J1p,Y0p,Y1p);
cout<< "J0: " << J0 << "\n";
cout<< "J0p: " << J0p << "\n";
cout<< "J1: " << J1 << "\n";
cout<< "J1p: " << J1p << "\n";
cout<< "Y0: " << Y0 << "\n";
cout<< "Y0p: " << Y0p << "\n";
cout<< "Y1: " << Y1 << "\n";
cout<< "Y1p: " << Y1p << "\n";
cin.get();
return 0;
}
尝试运行该程序。 z
是bessel函数的参数。
您可能会问J0
,J1
等等什么是贝塞尔函数,但是如果您需要解决哪些问题,请尝试使用公式中的数值。例如,检查J0是哪个公式的结果。我不是贝塞尔函数的专家。但是如果你给我一些你需要使用的确切公式我可以测试。