русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Способы задания графа


Дата добавления: 2015-06-12; просмотров: 1204; Нарушение авторских прав


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

Матрица связности имеет вид квадратной таблицы, в которой представлены отношения между вершинами, где элемент матрицы – это количество связей (ребер или дуг) для других двух вершин. Если вершины смежные, то ячейка таблицы примет значение 1, если вершины соединены краевыми ребрами, то ячейка таблицы примет значение 2. Так для графа, представленного на рис.1 матрица связности будет иметь вид таблицы.

  A B C D E
A
B
C
D
E

Из таблицы видно, что наибольшая лок. степень у вершины E: P(E)=4, у всех остальных вершин лок. степень равна 3.

Для того чтобы включенную в структуру модель представить в виде графа не структурную (количественную или текстовую) информацию довольно часто любому ребру (или любой вершине) рассматриваемого графа приписывают некоторый вес.

Граф, ребра (вершина) которого приписаны весу, называется взвешенными. Вес неудобно располагать на чертеже и схеме, поэтому взвешенный граф лучше представить в виде матрицы, такие матрицы называются матрицами весовых соотношений.

Пример: Составить взвешенный граф предложения: “С этого времени Цезарь один управлял всем в государстве по своей воле”.

В этом графе вершинами будут члены предложения, дуги синтетической связи между ними, причем вес приписан и вершинам и дугам, чтобы указать направление дуги в матрице используется знак “+” и “-“ (“+” - главное слово, “-“ -зависимое) связи, которую нужно отразить.



у – управление

с – согласные

к – координация

 

ПРАКТИЧЕСКАЯ ЧАСТЬ.

Моделирование физической и биологической задачи.

 

Задача о пушке, которой надо попасть в крепость.

Известна высота башни h и расстояние S до неё. Найти угол , при котором снаряд из пушки попадёт в башню на высоте h.

Решение.

(см в лекциях)

Горизонтальное и вертикальное смещение снаряда за время t описывается формулами:

где - ускорение свободного падения = 9.8 и - начальная скорость вылета снаряда.

Выразим t из первой формулы и подставим во вторую:

Задача сводится к решению методом половинного деления где . Метод половинного деления или аналог в артиллерийском приёме (пристреле) – одно положение выше цели, второй выстрел ниже цели.

Алгоритм метода половинного деления смотри в численных методах.

Текст программы на Pascal:

 

program n1;

uses crt;

var v,h,s:integer;

a1,a2,a,h1,h2,hh:real;

begin

clrscr;

writeln('Введите начальную скорость');

readln (v); { Ввод с клавиатуры скорости }

writeln('Введите расстояние до цели');

readln(s); { Ввод с клавиатуры расстояния }

writeln('Введите высоту цели');

readln(h); { Ввод с клавиатуры высоты }

a1:=0; {начальный угол}

a2:=89; {конечный угол}

a:=(a1+a2)/2; {искомый угол т.е промежуточный угол}

hh:=s*(sin(pi/180*a)/cos(pi/180*a))-(9.8*s*s)/(2*v*v*cos(pi/180*a)*cos(pi/180*a));

{высота полёта при искомом угле}

while abs(hh-h)>0.01 do

{пока разность между искомым и полученным углом больше 0.001 то выполнять цикл}

begin

if hh>h then a2:=a ;

{если полученная высота больше искомой, то а2 = промежуточному углу}

if hh<h then a1:=a;

{если полученная высота меньше искомой, то а1 = промежуточному углу}

a:=(a1+a2)/2; (искомый т.е. промежуточный угол = середине между а1 и а2)

hh:=s*(sin(pi/180*a)/cos(pi/180*a))-(9.8*s*s)/(2*v*v*cos(pi/180*a)*cos(pi/180*a));

{расчёт новой высоты при новом промежуточном угле}

end;

write('Угол =',a); {вывод полученного угла}

readkey;

end.

Например, угол, при котором пушка попадёт на высоту 5, на расстоянии 10 при начальной скорости 20 равен 34 градуса.

Задания:

Найти необходимый угол выстрела, при скорости вылета снаряда 20, на расстояние 5, чтобы снаряд попал в цель на высоте 5.

Найти необходимый угол выстрела, при скорости вылета снаряда 15, на расстояние 5, чтобы снаряд попал в цель на высоте 5.

Найти необходимый угол выстрела, при скорости вылета снаряда 20, на расстояние 10, чтобы снаряд попал в цель на высоте 15.

Сделайте вывод о зависимости между необходимым углом и скоростью вылета снаряда;

Сделайте вывод о зависимости между необходимым углом и расстоянием до цели;

Сделайте вывод о зависимости между необходимым углом и высотой цели;

Сделайте вывод о зависимости между всеми параметрами модели.

 

Задача о кроликах и лисах.

На некотором острове живут лисы и кролики. Кролики питаются травой, а лисы кроликами. Экологи пересчитывают кроликов и лис и сделали вывод:

1. Коэффициент прироста числа кроликов зависит от колебания погоды (холодная или тёплая) и колеблется от 3.2 до 4.7

2. Коэффициент прироста числа лис при избытке крольчатины колеблется от 5.2 до 5.7. При недостатке прирост пропорционален приросту кроликов.

3. Коэффициент пропорциональности =50

Требуется установить, как меняется численность кроликов, и лис с течением времени.

 

Построение модели и схему взаимодействия лис и кроликов смотри в лекциях.

Текст задачи на Pascal:

 

program n2;

uses crt;

var i,n:integer;

m,m1,l1,l,

k,a:real;

begin

clrscr;

write('vvedite kolichestvo let');

readln(n);

write('vvedite nachalnoe kolichestvo krolikov');

readln(m);

write('vvedite nachalnoe kolichestvo lis');

readln(l);

write('vvedite koefficient prirista krolikov');

readln(k);

write('vvedite koefficient prirista lis');

readln(a);

for i:=1 to n do

begin

m1:=(1+k)*m-50*l;

if a<(m1-m)/50 then l1:=(1+a)*l else l1:=(1+(m1-m)/50)*l;

l:=l1;

m:=m1;

end;

writeln('kolichestvo lis = ',l);

writeln('kolichestvo krol = ',m);

readkey;

end.

 

 

Решение в Excel:

 

На рисунке видно, что в ячейки B1-B4 вводим исходные данные. В ячейку E8 вводим формулу =(1+МИН($B$3;(F8-F7)/50))*E7 затем растягиваем ячейки вниз на необходимое количество лет (в данном примере 21 год; от 0 до 20). В ячейку =(1+$B$4)*F7-E7*50 и аналогично растягиваем. В результате в ячейках E7-E27 получим количество лис в соответствующих справа годах. В F7-F27 – количество кроликов. Например, видно, что при начальном количестве кроликов = 10000, при количестве лис = 100, и коэффициентах роста для кроликов = 4 и лис =0,1 количество кроликов через 10 лет будет 85136221274 а лис 259.

 

Задания:

Исследуйте по модели количество кроликов и лис при начальном количестве 1000 кроликов. Что произошло? В чём погрешность модели?

Исследуйте по модели количество кроликов и лис при начальном количестве 10000 кроликов и различных коэффициентах роста кроликов и лис. Сделайте выводы.

Сделайте выводы о взаимосвязи между различными параметрами.

 

Моделирование в среде MathCAD задачи «Хищники и жертвы».

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

Выбираем стандартную функцию ORIGIN

ORIGIN:=1

B:=4 {из данных}

{столбец неизвестных}

F(t,y):=

ORIGIN:=0

z:=Rkadapt(y,0,50,1001,F)

t:=z(0)

x:=z(1)

y:=z(2)

Строится график:

 

 



<== предыдущая лекция | следующая лекция ==>
Маршруты | МОДУЛЬ 3. ОБЩИЕ ВОПРОСЫ ПРОГРАММИРОВАНИЯ.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.068 сек.