Поиск по этому блогу

пятница, 7 сентября 2012 г.

Пример построения поверхности в gnuplot

Построение поверхности информационной пропускной способности стационарного двоичного канала без памяти:
Файл построения:



#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color #Вывод в формате eps
set output "plot2.eps" #Вывод в файл plot2.eps
set view 60,35,1,1 #Вид
set isosamples 500,500 #Количество изолиний(необходимы для улучшения качества графика)
set xrange[0:1] #Область построения
set yrange[0:1]
set zrange[0:1]
set grid xtics ytics ztics #Сетка на плоскостях 
set xlabel "p_1" #Названия осей
set ylabel "p_2"
set border 4095 #Отобразить границы бокса
set pm3d #Заливка поверхности палитрой
set palette defined ( 1 "blue", 2 "yellow", 3 "red" ) #Задание параметров палитры
#set contour base #Линии уровня на плоскости XY
unset surface #Отключить сетку поверхности

f(x,y)=1-x-y
b(x,y)=x*log(x)+(1-x)*log(1-x)-y*log(y)-(1-y)*log(1-y)
d(x,y)=1+exp(-b(x,y)/f(x,y))
z(x,y)=(1-y*d(x,y))/(f(x,y)*d(x,y))
h1(x,y)=(-1.44)*((f(x,y)*z(x,y)+y)*log(f(x,y)*z(x,y)+y)+(1-y-f(x,y)*z(x,y))*log(1-y-f(x,y)*z(x,y))) #Энтропия H(Y)
h2(x,y)=(-1.44)*(z(x,y)*(1-x)*log(1-x)+z(x,y)*x*log(x)+(1-z(x,y))*y*log(y)+(1-z(x,y))*(1-y)*log(1-y)) #Энтропия H(Y/X)
c(x,y)=h1(x,y)-h2(x,y) #Энтропия H(X;Y)=H(Y)-H(Y/X)
splot c(x,y) title "c_1(p_1,p_2)"

Команда построения:

$ gnuplot gnplotfile && evince plot2.eps

Результат построения:

Комментариев нет:

Отправить комментарий