如何访问第三方源文件中的功能?

时间:2013-08-03 23:04:25

标签: c++ math linker numbers

我正在寻找一种算法,可以让我使用数学贝塞尔函数来表示复数。现在我找到了a promising result。 (我对 Bessel函数Jv和Yv感兴趣的是真实或复杂的参数和实际的命令。)

我正在使用Visual Studio 2010 Express C ++,现在我希望能够访问那里实现的那些功能。我该怎么做?

2 个答案:

答案 0 :(得分:1)

下载此http://www.crbond.com/download/bessel.zip文件并将文件添加到Visual Studio项目中。要使用这些功能,您需要#include "BESSEL.h"到您的源文件。

我通过执行以下操作在Visual Studio上编译它

  1. _USE_MATH_DEFINES添加到预处理器定义。
  2. #include <complex.h>更改为#include <complex>
  3. using namespace std;添加到BESSEL.H
  4. 如何调用函数的示例:

    #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)

将上面链接的文件添加到您的项目中:

Solution

请注意,您必须编辑这些.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函数的参数。

您可能会问J0J1等等什么是贝塞尔函数,但是如果您需要解决哪些问题,请尝试使用公式中的数值。例如,检查J0是哪个公式的结果。我不是贝塞尔函数的专家。但是如果你给我一些你需要使用的确切公式我可以测试。