Ero sivun ”GNU Scientific Library” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (siirto luokkaan)
p (Malline:Kirjasto)
Rivi 1: Rivi 1:
{{Ohjelma
{{Kirjasto
| nimi=GNU Scientific Library
| nimi           = GNU Scientific Library
| kuva=
| kuva           =  
| kuvateksti=
| kuvateksti     =  
| lisenssi=[[GPL]]  
| tekijä        =
| käyttöliittymä=[[kirjasto]]
| kehittäjä      =
| kotisivu=[http://www.gnu.org/software/gsl/ gnu.org/software/gsl]
| ensijulkaisu  =
| vakaaversio    =
| vakaapvm      =
| kehitysversio  =
| kehityspvm    =
| ohjelmoitu    = [[C]]
| lisenssi      = [[GPL]]  
| kotisivu       = [http://www.gnu.org/software/gsl/ gnu.org/software/gsl]
| lähdekoodi    =
}}
}}


GNU Scientific Library (GSL) on [[GNU]]-projektin [[C]]-kielellä toteutettu numeeriseen tieteelliseen laskentaan tarkoitettu kirjasto. Se on yksi parhaista [[wikipedia:fi:vapaa ohjelmisto|vapaista]] tieteelliseen laskentaan soveltuvista kirjastoista.
'''GNU Scientific Library''' (GSL) on [[GNU]]-projektin [[C]]-kielellä toteutettu numeeriseen tieteelliseen laskentaan tarkoitettu kirjasto. Se on yksi parhaista [[wikipedia:fi:vapaa ohjelmisto|vapaista]] tieteelliseen laskentaan soveltuvista kirjastoista.


Kirjastossa on laadukkaita numeerisia funktioita moniin eri tarkoituksiin, esimerkiksi numeeriseen integrointiin ja derivointiin, kompleksilukujen käsittelyyn, lineaarialgebraan ja  tilastolliseen analyysiin.
Kirjastossa on laadukkaita numeerisia funktioita moniin eri tarkoituksiin, esimerkiksi numeeriseen integrointiin ja derivointiin, kompleksilukujen käsittelyyn, lineaarialgebraan ja  tilastolliseen analyysiin.
Rivi 71: Rivi 79:
*[[wikipedia:GNU Scientific Library|GSL-artikkeli]] englanninkielisessä Wikipediassa
*[[wikipedia:GNU Scientific Library|GSL-artikkeli]] englanninkielisessä Wikipediassa


[[Luokka:Numeerinen laskenta]]
[[Luokka: Numeerinen laskenta]]
[[Luokka:Kirjastot]]

Versio 26. joulukuuta 2020 kello 04.24

GNU Scientific Library
Ohjelmoitu C
Lisenssi GPL
Kotisivu gnu.org/software/gsl

GNU Scientific Library (GSL) on GNU-projektin C-kielellä toteutettu numeeriseen tieteelliseen laskentaan tarkoitettu kirjasto. Se on yksi parhaista vapaista tieteelliseen laskentaan soveltuvista kirjastoista.

Kirjastossa on laadukkaita numeerisia funktioita moniin eri tarkoituksiin, esimerkiksi numeeriseen integrointiin ja derivointiin, kompleksilukujen käsittelyyn, lineaarialgebraan ja tilastolliseen analyysiin.

GNU Scientific Library löytyy useimpien jakeluiden paketinhallinnasta nimellä libgsl-dev. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.

Esimerkki

Seuraava koodi integroi numeerisesti funktion f(x)=e^(-x^2) välillä [0,ääretön]:

#include <iostream>
#include <gsl/gsl_math.h>
#include <gsl/gsl_integration.h>
#include <gsl/gsl_sf_exp.h>

struct parametrit{double a; double b;};

double funktio(double x, void*p)
{
	parametrit* param=(parametrit*)p;
	double a=param->a;
	double b=param->b;
	return a*gsl_sf_exp(-b*x*x);
}

int main (void)
{
	gsl_function F;
	parametrit param={1.0, 1.0}; // f(x) = exp(-x^2)
	F.function=&funktio;
	F.params=&param;
	
	double tulos,abserr;   	      // Laskun tulos ja virhe
	double epsabs=0,epsrel=0.001; // Haluttu absoluuttinen ja suhteellinen virhe
	size_t eval;                  // Montako kertaa funktion arvo lasketaan
	
        // Lasketaan integraali
	gsl_integration_qng(&F,0,20,epsabs,epsrel,&tulos,&abserr,&eval);
	
	std::cout << "Integrate[F[x],{x,0,Infinity}]=" << tulos << std::endl;
	std::cout << "Virhe: " << abserr << ", funktio laskettiin " << eval << " kertaa."<< std::endl;
	std::cout << "Analyyttisesti Integrate[F[x],{x,0,Infinity}]=Sqrt[Pi]/2=" << sqrt(M_PI)/2 << std::endl;
	return 0;
}

Ohjelma käännettäisiin komennolla

$ g++ integraali.cpp -o integraali $(gsl-config --cflags) $(gsl-config --libs)

Ohjelman tuloste on seuraava:

$ ./integraali
Integrate[F[x],{x,0,Infinity}]=0.886227
Virhe: 9.43295e-06, funktio laskettiin 43 kertaa.
Analyyttisesti Integrate[F[x],{x,0,Infinity}]=Sqrt[Pi]/2=0.886227

Katso myös

Asiasta muualla