Моделирование
I. Постановка задачи
I. Постановка задачи
I. Постановка задачи (пример)
II. Разработка модели
II. Разработка модели
Уточнение диапазона углов
II. Разработка модели
II. Разработка модели
III. Тестирование модели
IV. Эксперимент с моделью
V. Анализ результатов эксперимента
V. Анализ результатов
510.50K
Категория: ИнформатикаИнформатика

Моделирование. Этапы моделирования

1. Моделирование

1
Моделирование
Этапы моделирования

2. I. Постановка задачи

2
I. Постановка задачи
• исследование оригинала
изучение сущности объекта или явления
• анализ («что будет, если …»)
научиться прогнозировать последствий при различных
воздействиях на оригинал
• синтез («как сделать, чтобы …»)
научиться управлять оригиналом, оказывая на него
воздействия
• оптимизация («как сделать лучше»)
выбор наилучшего решения в заданных условиях

3. I. Постановка задачи

3
I. Постановка задачи
Хорошо поставленная задача:
• описаны все связи между исходными данными и
результатом
• известны все исходные данные
• решение существует
• задача имеет единственное решение
Примеры плохо поставленных задач:
• Уроки в школе начинаются в 830. В 1000 к школе подъехал
красный автомобиль. Определите, когда Вася выйдет
играть в футбол?
• Вася бросает мяч со скоростью 12 м/с. Где мяч впервые
ударится о землю?
• Решить уравнение sin x = 4 (нет решений).
• Найти функцию, которая проходит через точки (0,1) и (1,0)
(бесконечно много решений).

4. I. Постановка задачи (пример)

4
I. Постановка задачи (пример)
Спортсмен Вася в синей кепке бросает белый мяч со
скоростью 12 м/с. Под каким углом к горизонту ему нужно
бросить мяч, чтобы попасть в желтую мишень?
Допущения:
Мишень расположена на высоте 4 м на расстоянии 10
м от Васи. В момент броска мяч находится на высоте
2 м от земли.

5. II. Разработка модели

5
II. Разработка модели
Спортсмен Вася в синей кепке бросает белый мяч со
скоростью 12 м/с. Под каким углом к горизонту ему нужно
бросить мяч, чтобы попасть в желтую мишень? Мишень
расположена на высоте 4 м на расстоянии 10 м от Васи.
В момент броска мяч находится на высоте 2 м от земли.
1) Определить существенные исходные данные.
• мяч и мишень — материальные точки
• мишень неподвижна
• сопротивление воздуха не учитывается.
2) Выбор типа модели.

6. II. Разработка модели

6
,
II. Разработка модели
Графическая модель
y
v0
H
x
S

3) Формальная (математическая) модель
gt 2
x v0 t cos , y v0 t sin
2
Задача: найти t и , такие что x S , y H

7. Уточнение диапазона углов

7
Уточнение диапазона углов
min arctg
H
S
H
Диапазон углов для поиска: arctg ...
S 2

8. II. Разработка модели

8
II. Разработка модели
4) Алгоритм моделирования
Метод I.
Меняем угол . Для выбранного угла строим
траекторию полета мяча. Если она проходит выше
мишени, уменьшаем угол, если ниже – увеличиваем.
Метод II.
Из первого равенства выражаем время полета:
v0 cos t S
S
t
v0 cos
Меняем угол . Для выбранного угла считаем t, а
затем – значение y при этом t. Если оно больше H,
уменьшаем угол, если меньше – увеличиваем.
не надо строить всю траекторию для каждого

9. II. Разработка модели

9
II. Разработка модели
5) Компьютерная модель
• программа (Паскаль, Си, …)
• электронные таблицы (Excel, OpenOffice.org Calc)
• среды моделирования (Simulink, VisSim)

10. III. Тестирование модели

10
III. Тестирование модели
Тестирование – это проверка модели на простых
исходных данных с известным результатом.
а) тестирование математической модели:
gt
x v0 t cos , y v0 t sin
2
2
• при t = 0 x = 0, y = 0 (в начале координат)
gt 2
• при v0 = 0 x = 0, y
(падение вниз)
2
• при = 90 x = 0
• при увеличении t парабола «загибается» вниз
б) тестирование компьютерной модели:
(пробные расчёты в рассмотренных условиях)

11. IV. Эксперимент с моделью

11
IV. Эксперимент с моделью
Эксперимент – это исследование модели при тех
исходных данных, которые нас интересуют (результат
заранее неизвестен).
1) задаём угол
S
2) находим время t
v0 cos
3) находим высоту
gt 2
t cos , y v0 t sin
2
Может быть два
решения!
y<H
H
Диапазон углов для поиска: arctg ...
S 2
? Как отделить два решения?
построить график y( )

12. V. Анализ результатов эксперимента

12
V. Анализ результатов эксперимента
! Необходима проверка на оригинале!
Возможные выводы:
• задача решена, модель адекватна
• необходимо изменить алгоритм или условия
моделирования
• необходимо изменить модель (учесть
дополнительные свойства)
• необходимо изменить постановку задачи

13. V. Анализ результатов

13
V. Анализ результатов
• всегда ли Вася сможет попасть в мишень?
• если начальная скорость отличается от заданной?
• если мяч и мишень не считать материальными
точками?
• как сильно влияет сопротивление воздуха?
• если мишень качается?
• и т.д….

14.

14
Задача: Составить алгоритм определения высоты снаряда над землей на расстоянии L от пушки, снаряд вылетел под углом а, а со скоростью V.
1) Постановка задачи:
Дано.
L,a,v - вещественные переменные.
Надо.
Высота снаряда над землей - Н - вещественная переменная.
Форма представления модели: Математическая.
Переведем угол полета снаряда в радианы: d = а*3.1415/180.
Вычислим время полета: t = L / (cos(d)*v).
Высота, снаряда над землей на расстоянии L от пушки:
H=L*tg(d) - 9.8*t*t/2.

15.

Задача: Составить алгоритм определения высоты снаряда над зем-15
лей на расстоянии L от пушки, снаряд вылетел под углом а, а со скоростью V.
2) Разработка модели: Построим компьютерную модель (программу,
реализующую данные вычисления на школьном алгоритмическом
языке).
Выбранные переменные d. t - промежуточные переменные
вещественного типа. Они описыются после служебного слова нач .
Переменные L,a,v в данном алгоритме являются аргументами.
Переменная H является результатом. Аргумент и результат
описываются в заголовке алгоритма, после указания его имени.
алг Высота (арг вещ L,a,.v, рез вещ H)
нач вещ d,t
d:=a*3.1415/180
t:=L/(cos(d)*v)
H:=L*sin(d)/cos(d)-9.8*t*t/2
кон

16.

Решение уравнения x=cos(x) графическим методом с
помощью Excel.
eps = 0.001
import math
def f(x):
f=x-math.cos(x)
return f
x=0;
delta=2*eps
while f(x)*f(x+delta) > 0:
x=x+delta
print("x = {:3.3f}".format(x+eps))
Результат:
Корень уравнения:
x = 0.739
16

17.

17
Уравнение траектории:
Пример программы, моделирующей поиск угла для попадания мяча
в мишень.
def f(x):
f=hh-h-s*math.tan(x) + (g*s*s)/(2*v0*v0*math.cos(x)*math.cos(x))
return f
while a1 < 90:
x= 2*pi*a1/(360)
delta1= 2*pi*delta/(360)
if f(x)*f(x+delta1) < 0:
print("a1={:6.1f} ".format(a1))
a1=a1+delta
English     Русский Правила