Constants
Pi sayısını belirtilen tipte almak için şöyle yaparız.
C++ matametik kütüphanesinde olmayan factorial için kullanılır.
Special Functions
digamma metodu
Pi sayısını belirtilen tipte almak için şöyle yaparız.
boost::math::constants::pi<cpp_dec_float_50>()
Factorial metoduC++ matametik kütüphanesinde olmayan factorial için kullanılır.
Special Functions
digamma metodu
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/math/special_functions/digamma.hpp>
std::cout << boost::math::digamma (3.14) << "\n";
ibeta metoduŞu satırı dahil ederiz.
#include <boost/math/special_functions/beta.hpp>
Şöyle yaparız.boost::math::ibeta((double)5, (double)1, (double)0.5);
sinc_pi metodu
Açıklaması şöyle
Şöyle yaparız
newton_raphson_iterate metodu
İmzası şöyle
bisect metodu
İmzası şöyle
The function sinc(x) is equivalent to sin(x)/x.Şu satırı dahil ederiz.
#include "boost/math/special_functions/sinc.hpp"
Şöyle yaparız.float x = 0;
float result = boost::math::sinc_pi(x);
Normal SınıfıŞöyle yaparız
boost::math::normal s;
Şöyle yaparız.double clStats::NormCDF(double x) {
return boost::math::cdf(s,x);
}
double clStats::NormPDF(double x) {
return boost::math::pdf(s,x);
}
Internalsnewton_raphson_iterate metodu
İmzası şöyle
template <class F, class T>
T newton_raphson_iterate(F f, T guess, T min, T max, int digits,
boost::uintmax_t& max_iter)
Şöyle çağırırız.newton_raphson_iterate(myFunc, 0.1, -0.1, 0.4,
std::numeric_limits<double>::digits);
Toolsbisect metodu
İmzası şöyle
template <class F, class T, class Tol>
std::pair<T, T>
bisect(
F f,
T min,
T max,
Tol tol);
Elimizde şu denklem olsun.x^2 - 3x + 1 = 0Şöyle yaparız.
struct TerminationCondition {
bool operator() (double min, double max) {
return abs(min - max) <= 0.000001;
}
};
struct FunctionToApproximate {
double operator() (double x) {
return x*x - 3*x + 1; // Replace with your function
}
};
// ...
using boost::math::tools::bisect;
double from = 0;
//The solution must lie in the interval [from, to],
additionally f(from) <= 0 && f(to) >= 0
double to = 1;
std::pair<double, double> result = bisect(FunctionToApproximate(), from, to,
TerminationCondition());
double root = (result.first + result.second) / 2; // = 0.381966...
Hiç yorum yok:
Yorum Gönder