УДК 004

МОДЕЛИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕКИ JPGRAPH

Богомолова О.И.
Казанский национальный исследовательский технологический университет
ассистент

Аннотация
В данной статье рассмотрена разработка программы с дистанционным управлением для расчетов модифицированных проницаемостей при различных вероятностных законах распределения.

Ключевые слова: моделирование

Bogomolova O.I.
Kazan National Research Technological University
assistant

Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Богомолова О.И. Моделирование с использованием библиотеки jpGraph // Современные научные исследования и инновации. 2011. № 7 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2011/11/5447 (дата обращения: 04.06.2017).

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

Системы дистанционных расчетов хорошо зарекомендовали себя и приобретают все большую популярность.

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

Разработанный комплекс предназначен для удаленной обработки. Он предоставляет возможность автоматически “прогонять” данные через существующие сценарии на сервере.

Взаимодействие с сервером может быть организовано как в локальной сети, так и через Интернет. Обмен и управление происходят по протоколу TCP/IP.

В удаленном режиме можно передать параметры,  выбрать функции для вывода.

В качестве языка интерфейса выбран HTML.

В качестве серверного языка выбран php, как наиболее популярный язык для разработки серверных приложений.  В открытом доступе можно найти множество пособий  по этому языку. Большая часть web-приложений  использует именно его.

Для PHP написано множество классов, библиотек, в том числе графических. Рассмотрев несколько  библиотек для рисования графиков, выберем наиболее подходящую.

В качестве HTTP-сервера -Apache, как наиболее распространенный сервер с открытым кодом.

Рассмотрим выбранную для нашего проекта библиотеку–jpGraph .

Эта библиотека была выбрана как наиболее часто используемая для аналогичных проектов. Во многих проектах, на определенном этапе возникает вопрос выбора графической библиотеки.

Библиотека JpGraph – OO  графическая библиотека, которая облегчает отрисовку “быстрых ” графиков с минимумом кода и весьма сложных графиков, которые  требует очень точного контроля.

Основные отличительные особенности библиотеки

* Ориентация на нужды пользователя Интернета: графика оптимизирована, обычно изображение размером 300 на 200 пикселов весит всего лишь 5-7 килобайт.

* Поддерживается кеширование созданных изображений с целью снижения нагрузки на HTTP-сервер.

* Поддерживается версии библиотеки GD-library 1 и 2, установленная версия определяется автоматически, таким образом, разработчик не испытывает необходимости изменять код в зависимости от версии GD-library.

Для создания графика необходимо задать следующие команды:

// … Включение необходимых заголовков

$graph  = new Graph($width, $height, …);

// здесь будет код для конструирования графика

$graph->Stroke();

Первые 2 параметра означают ширину и высоту , третий имя файла в кеше.

Для построения графиков можно непосредственно задать массивы значений для координат x y:

// Original data points

$xdata = array(1,3,5,7,9,12,15,17.1);

$ydata = array(5,1,9,6,4,3,19,12);

В работах В.Я. Булыгина предложена схема струйного течения в слоистых нефтяных пластах при двухфазной изотермической фильтрации. В работе [1] обобщён этот метод для случаев изотермической двухфазной фильтрации, а также для трёхфазной фильтрации. При этом предложены новые модифицированные фазовые проницаемости для случая нелинейных исходных лабораторных относительных проницаемостей. Формулы распределения показаны на рис1.

В расчетах модифицированных проницаемостей при различных вероятностных законах распределения используются функции: сложение, вычитание, умножение, деление, квадратный корень(sqrt($x)), натуральный логарифм(ln($x)). Вид функции задается строкой  $f = new FuncGenerator(‘ ‘), где в скобках записывается вид необходимой функции. Интервал выводимых значений задается строкой list($x2data,$y2data) = $f->E(-0.0001,1).

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

Пользователю необходимо предоставить возможность ввода коэффициентов функции. Для этого используется элемент формы input:

<input name=”Text1″ type=”text” />

Далее, для сравнения мы можем выводить графики 1, 2, …, 6 функций. Для возможности выбора выводимых функций используем элемент формы checkbox(флажок). Флажки (и кнопки с зависимой фиксацией) – это переключатели вкл./выкл., которые могут переключаться пользователем. Переключатель “включен”, если для управляющего элемента установлен атрибут selected.

При отправке формы успешными могут стать только включенные переключатели. Несколько флажков в форме могут иметь одно и то же имя управляющего элемента. Таким образом, например, флажки позволяют пользователям выбрать несколько значений для одного и того же свойства. Для создания флажков используется элемент INPUT.

Рисунок1. Пользовательский интерфейс приложения

интерфейс

Можно на одном рисунке вывести несколько графиков. Соответствующие функции в  библиотеке  скорректируют диапазон значений x и y  осей. Добавим к нашему графику ещё один ( для функции )

<?php

include (“../jpgraph.php”);

include (“../jpgraph_line.php”);

include (“../jpgraph_utils.inc.php”);

// Setup the basic graph

$graph = new Graph(500,500,”auto”);

$graph->SetScale(“linlin”);

//$graph->SetShadow();

$graph->img->SetMargin(5,30,60,40);

$graph->SetBox(true,’green’,2);

$graph->SetMarginColor(‘lightyellow’);

$graph->SetColor(‘black’);

// … and titles

$graph->title->Set(‘GRAPH 0.5x(1-0.5x) AND 1-(1-x)*sqrt(1-x)’);

$graph->title->SetFont(FF_FONT1,FS_BOLD);

$graph->title->SetColor(‘darkgreen’);

$graph->subtitle->Set(” “);

$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);

$graph->subtitle->SetColor(‘darkgreen’);

$graph->xgrid->Show();

$graph->xgrid->SetColor(‘darkgreen’);

$graph->ygrid->SetColor(‘darkgreen’);

$graph->yaxis->SetPos(0);

$graph->yaxis->SetWeight(2);

$graph->yaxis->HideZeroLabel();

$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->yaxis->SetColor(‘green’,'green’);

$graph->yaxis->HideTicks(true,true);

$graph->yaxis->HideFirstLastLabel();

$graph->xaxis->SetWeight(2);

$graph->xaxis->HideZeroLabel();

$graph->xaxis->HideFirstLastLabel();

$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->xaxis->SetColor(‘green’,'green’);

$f = new FuncGenerator(’0.5*$x*(1-0.5*$x)’);

list($xdata,$ydata) = $f->E(-0.0001,1);

$lp1 = new LinePlot($ydata,$xdata);

$lp1->SetColor(‘yellow’);

$lp1->SetWeight(1);

$f = new FuncGenerator(’1-(1-$x)*sqrt(1-$x)’);

list($x2data,$y2data) = $f->E(-0.0001,1);

$lp2 = new LinePlot($y2data,$x2data);

list($xm,$ym)=$lp2->Max();

$lp2->SetColor(‘blue’);

$lp2->SetWeight(2);

$graph->Add($lp1);

$graph->Add($lp2);

$lp1->SetLegend (“0.5x(1-0.5x)”);

$lp2 ->SetLegend(“1-(1-x)*sqrt(1-x)”); $graph ->legend->Pos( 0.05,0.5,”right” ,”center”);

$graph->Stroke();

?>

Строки ниже дорисовывают пометку-маркер для обозначения графиков

$graph->Add($lp1);

$graph->Add($lp2);

$lp1->SetLegend (“0.5x(1-0.5x)”);

$lp2 ->SetLegend(“1-(1-x)*sqrt(1-x)”); $graph ->legend->Pos( 0.05,0.5,”right” ,”center”);

Рисунок2. Результат работы программы

результат работы программы


Библиографический список
  1. Плохотников С.П. Математическое моделирование фильтрации в слоистых пластах / С.П. Плохотников, Р.Х. Фатыхов: Монография, Казань, КГУ,2006г.-173 С.
  2. Булыгин В.Я. Гидромеханика нефтяного пласта / В.Я. Булыгин -М.:Недра, 1974.-232 с.
  3. Гмурман В.Е. Теория вероятностей и математическая статистика 1977 стр.480
  4. Матросов А.В., Сергеев А.О., Чаунин М.П. HTML 4.0. – СПб.: Питер, 1999.  –  224 с.: ил.
  5. Айзекс С. Dynamic HTML. – СПб.: Питер, 2001. – 367 с.: ил.
  6. Шапошников И. Профессиональное PHP программирование Издательство: Питер 2007 стр. 192
  7. Фролов А., Фролов Г. Практика применения PHP, Apache и MySQL для активных web–сайтов. – М.: Издательско–торговый дом  “Русская Редакция”, 2002. – 576 с.: ил.


Все статьи автора «Богомолова Ольга Игоревна»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

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

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: