2017-10-05 5 views
0

je le script suivant gnuplot qui ne donne pas une sortiegnuplot incapable de tracer une fonction

set encoding utf8 
set termoption enhanced 

y(x) = 20 * log10(1/((1/694) * x)) 

set log x 
set xrange [1:10] 
set xlabel "{/Symbol w} 1/s" 
set yrange [-150:150] 
set ylabel "G^* dB" 

plot y(x) 

Cependant, si je remplace la fonction y(x) avec quelque chose de plus simple, par exemple. y(x) = 20 * log10(1/x) le script fonctionne comme prévu.

Quel est le problème avec la fonction et pourquoi gnuplot ne peut pas le tracer?

Répondre

4

En arithmétique entière (1/694) est égal à zéro, l'argument du logarithme est 1/(0 * x), ce qui n'est pas numérique. Pour vous assurer que vous utilisez l'arithmétique en virgule flottante, essayez

y(x) = 20 * log10(1./((1./694.) * x))