pgfplots с gnuplot: Неожиданное поведение: Почему?

Хотя я несколько раз успешно использовал pgfplots с gnuplot, я не могу найти причину следующей проблемы:

Я пытаюсь построить график функции, который вы можете увидеть здесь: f (x) = (36/25) + (336 * x) / 125 - (6 * x ^ 2) / 5 + (24 * x ^ 3) / 125 - (x ^ 4) / 100.

Когда я строю график функции с помощью таких программ, как GeoGebra, или вычисляю значения «вручную», я ясно вижу, что f (6) = 0. Тем не менее, выход

\documentclass[a4paper,11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{pgf,tikz}

\begin{document}    
  \begin{tikzpicture}        
    \begin{axis}               
      \addplot gnuplot[domain=3:7] {-(36/25) + (336*x)/125 - (6*x^2)/5 + (24*x^3)/125 - (x^4)/100};                
    \end{axis}          
  \end{tikzpicture}      
\end{document}  

следующее, и оно ясно показывает, что f (6)> 0.

На этом изображении показан результат

Мне кажется, что получившийся график нужно переместить вниз, чтобы получить правильный график. Что еще хуже, я также столкнулся со следующим неожиданным поведением: если я заменяю

- (x^4)/100

с участием

- 1/100 * x^4

результат будет другим (но все же неверным).

Поскольку другие функции очень похожей структуры построены, казалось бы, правильно, я не могу сам найти причину проблемы и надеюсь, что кто-то может мне помочь.


person Sigmar2030    schedule 18.02.2018    source источник
comment
Gnuplot использует целочисленное деление, если оба значения являются целыми числами, т.е. 1/100 == 0, 1.0/100.0 == 0.01   -  person Christoph    schedule 18.02.2018
comment
Спасибо, Кристоф, это решает мою проблему. Если вы напишете это как ответ, я могу отметить это как решение   -  person Sigmar2030    schedule 18.02.2018


Ответы (1)


Как и C, gnuplot использует целочисленное деление, если оба значения являются целыми числами:

gnuplot print 1/100
0
gnuplot print 1/100.0
0.01
person Christoph    schedule 18.02.2018