math.J0 în Go

Funcțiile Bessel de ordinul 0, 1 și n: de speța întâi (J0, J1, Jn) și de speța a doua (Y0, Y1, Yn).

Sintaxă
import "math"

func J0(x float64) float64
func J1(x float64) float64
func Jn(n int, x float64) float64
func Y0(x float64) float64
func Y1(x float64) float64
func Yn(n int, x float64) float64

Ce face math.J0

Funcțiile Bessel apar în fizică și inginerie la probleme cu simetrie circulară: vibrațiile unei membrane de tobă, propagarea undelor într-un cilindru, câmpul electromagnetic dintr-un cablu. Probabil nu le vei folosi decât în calcule științifice.

J0, J1 și Jn(n, x) sunt funcțiile de speța întâi, de ordinul 0, 1 și n. Seamănă cu un cosinus care se stinge treptat. Y0, Y1 și Yn(n, x) sunt funcțiile de speța a doua; ele sunt definite doar pentru x > 0 (la 0 dau -Inf, iar pentru x negativ dau NaN).

Parametri

Parametru Descriere
n Ordinul funcției (pentru Jn și Yn).
x Argumentul.

Ce returnează

Valoarea funcției Bessel, ca float64.

Exemple

Exemplul 1: Valori ale funcțiilor Bessel

2.4048 este aproape de primul punct în care J0 trece prin zero.

package main

import (
    "fmt"
    "math"
)

func main() {
    for _, x := range []float64{0, 1, 2.4048, 5} {
        fmt.Printf("x = %-6v J0 = %7.4f  J1 = %7.4f  J2 = %7.4f\n", x, math.J0(x), math.J1(x), math.Jn(2, x))
    }
}

Rezultat

x = 0      J0 =  1.0000  J1 =  0.0000  J2 =  0.0000
x = 1      J0 =  0.7652  J1 =  0.4401  J2 =  0.1149
x = 2.4048 J0 =  0.0000  J1 =  0.5192  J2 =  0.4318
x = 5      J0 = -0.1776  J1 = -0.3276  J2 =  0.0466

Exemplul 2: Speța a doua: Y0, Y1, Yn

package main

import (
    "fmt"
    "math"
)

func main() {
    for _, x := range []float64{1, 2, 5} {
        fmt.Printf("x = %v  Y0 = %7.4f  Y1 = %7.4f  Y2 = %7.4f\n", x, math.Y0(x), math.Y1(x), math.Yn(2, x))
    }
    fmt.Println(math.Y0(0), math.Y0(-1))
}

Rezultat

x = 1  Y0 =  0.0883  Y1 = -0.7812  Y2 = -1.6507
x = 2  Y0 =  0.5104  Y1 = -0.1070  Y2 = -0.6174
x = 5  Y0 = -0.3085  Y1 =  0.1479  Y2 =  0.3677
-Inf NaN

Greșeli frecvente

  • Apelezi Y0/Y1/Yn cu 0 sau un număr negativ: rezultatul este -Inf sau NaN.

Comenzi înrudite

  • math.Gamma: Funcția Gamma (factorialul extins la numere reale) și Lgamma, logaritmul ei, util pentru valori mari.
  • math.Sin: Funcțiile trigonometrice sinus, cosinus și tangentă; unghiul se dă în radiani. Sincos le dă pe primele două deodată.