Моделирование динамических систем: введение

  • Tutorial

Предисловие


Трудно переоценить значение компьютерного моделирования в современном мире. Давным давно канули в Лету времена, когда траектории выведения спутников на околоземную орбиту вычислялись толпой девушек-расчетчиц с «Феликсами» наперевес (была такая вычислительная машина). Сегодня скромных размеров ящик около вашего рабочего стола решает все мыслимые и немыслимые задачи. Но есть одно «но».



Состояние инженерного образования, не знаю, как там в столицах, а здесь, на периферии, выглядит в контексте данного вопроса удручающе. Винить тут стоит подход к преподаванию в вузах таких дисциплин как «Численные методы решения инженерных задач на ЭВМ», «Математическое моделирование в %нужное впишите сами%» и прочих. Эта беда инженерного образования вытекает из того факта, что в курсах, подобным перечисленным, порой напрочь отрублены междисциплинарные связи. У обучаемого не складывается в голове цепочка: фундаментальная теория -> практическое применение -> инструмент решения задачи.

У меня давно зрела мысль написать цикл, в котором будет разобрано по полочкам всё то, что мы называем современным математическим моделированием. Но сделать это просто и доступно для тех, кто только начинает познавать эту необъятную дисциплину современной науки. Что из этого выйдет, неизвестно, но тех кому стало интересно я приглашаю под кат.

1. Математические начала натуральной философии


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

Именно "Начала..." Ньютона, заложившие основы дифференциального исчисления с практическим выходом в сторону механики сделали последнюю первой в истории настоящей научной теорией. Законами механики, где-то успешно, где-то не очень, стали пытаться объяснять все явления, происходящие в природе, от оптики до электричества, от термодинамики до строения вещества. Время расставила точки над «i», на смену механистическим принципам пришли другие теории, да и сама механика изрядно эволюционировала. Но вместе с тем, механика, как никакая другая дисциплина наглядно и подробно иллюстрирует всё то, о чём мы будем говорить ниже. Большинство примеров данного цикла будет так или иначе связано с моделированием механических систем, по крайней мере в первых его статьях.

Прежде чем мы начнем, должен дать несколько поясняющих замечаний:

  1. Читатель таки должен быть знаком с основным содержанием курса математики, понимать что такое векторные величины. Без этого ну никак. Буду стараться снабжать текст ссылками для подробного изучения узких мест, но в подробности вдаваться не буду
  2. В качестве инструмента для выполнения численных расчетов будем опираться на пакет GNU Octave. Почему — две причины. Он бесплатен, является аналогом Matlab и содержит всё необходимое для наших целей. Вторая причина — я сам хочу с ним познакомится, так что пусть это будет моей прихотью )
  3. Автор ждет замечаний к материалу, излагаемых в любой форме, будь то комментарии, письма, прочее. Это поможет сделать материал лучше.

2. Количественные параметры, описывающие движение


Механика — это наука, изучающая движение материальных тел. Под механическим движением понимают перемещение тела в пространстве с течением времени. Это определение должно навести вас на следующие вопросы:

  1. Что понимают под телом?
  2. Как определяют его положение в пространстве?

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

  1. Материальная точка (или просто «точка»)
  2. Абсолютно твердое тело (или просто «твердое тело»)

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



Земля имеет диаметр порядка 13000 километров. Солнце — почти полтора миллиона километров. Ничего себе точки! Но вот расстояние между ними 150 млн. километров, а путь проходимый Землей за год по орбите около миллиарда километров. Как видим, в таких масштабах пространства Землю и Солнце можно действительно считать точками.

А если мы хотим изучать вращение Земли вокруг своей оси?



Тогда каждая точка Земли движется по своей собственной траектории относительно оси вращения и пренебрегать её размерами никак нельзя! Здесь Землю стоит рассматривать уже как совокупность связанных точек или твердое тело.

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

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

2.1. Векторный способ задания движения


Все очень просто — из начала координат O к точке M проводят вектор. Длина и направление этого вектора позволяют нам судить о том, где расположена точка.



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

$\vec r = \vec r(t) $



Эта запись говорит нам о том, что радиус-вектор является функцией времени.

2.2. Координатный способ задания движения точки


Мы может провести из начала отсчета три взаимно перпендикулярных оси x, y, и z. Тогда положение точки будет определятся тройкой чисел — координатами в декартовой системе.



В этом случае закон движения точки это три функции времени

$\begin{cases} x = x(t) \\ y = y(t) \\ z = z(t) \end{cases}$



и теперь уже они являются законом движения.

2.3. Естественный (траекторный) способ задания движения точки


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



В этом случае нам придется определится с тем, в каком направлении вдоль кривой координата s отсчитывается в положительном направлении и тогда функция

$s = s(t)$



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

3. Скорость и ускорение


Скорость точки — это первая производная радиус вектора точки по времени

$\vec v = \frac{d\vec r}{dt}$



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

$\begin{cases} &v_x = \cfrac{dx}{dt} = \dot x \\ &v_y = \cfrac{dy}{dt} = \dot y \\ &v_z = \cfrac{dz}{dt} = \dot z \end{cases}$



Последнее обозначение производной — точкой над функцией, такое древнее как и сами «Начала...» и восходит к Ньютону. Именно он предложил это обозначение. Потом укоренился привычный школьникам и студентам штрих, как обозначение производной по произвольному параметру, а точка осталась как обозначение производной взятой именно по времени.
Ускорение точки — это первая производная от вектора скорости точки, или вторая производная от радиус-вектора точки

$ \vec a = \frac{d\vec v}{dt} = \frac{d^2\vec r}{dt^2} $


В декартовых координатах это выглядит так

$ \begin{cases} &a_x = \dot v_x = \ddot x \\ &a_y = \dot v_y = \ddot y \\ &a_z = \dot v_x = \ddot z \end{cases} $



Тут двумя точками над функциями обозначена вторая производная по времени.

Таким образом, зная закон движения точки мы с легкостью можем определить её скорость и ускорение простым вычислением производной.

4. Аксиомы динамики


В школе рассказывают о законах Ньютона. При этом часто допускают фундаментальную ошибку — забывают сказать, что эти законы сформулированы и справедливы исключительно для материальной точки. И совершенно не работают для твердого тела (тише, тише, не надо гневных возгласов, я всё объясню).

В такой научной дисциплине, как теоретическая механика, законы Ньютона принято называть аксиомами, и дополненные принципом независимости действия сил, они образуют систему аксиом динамики.
Аксиома 1 (Первый закон Ньютона)

Точка движется в пространстве равномерно и прямолинейно, если векторная сумма приложенных к ней сил равна нулю.
Как преподаватель механики с довольно неплохим стажем я предпочитаю именно эту формулировку принципа инерции классической механики чем путанную школьную «существуют такие системы отсчета, относительно которых бла-бла-бла...». Из этой формулировки сразу понятно: чтобы механическое движение происходило, совершенно необязательно действие силы. Если сил нет, или их действие на точку скомпенсировано, то её движение будет происходить по инерции, по прямой с неизменной скоростью. Чтобы направление и величина скорости изменилось, нужна причина, а именно
Аксиома 2 (Второй закон Ньютона)

Вектор ускорения точки, умноженный на её массу равен действующей на точку силе

$\vec F = m \, \vec a$


Если на точку действует отличная от нуля сила, то она порождает ускорение, направленное в ту же самую сторону. А с появлением ускорения меняется и скорость точки, а значит и характер движения.
Аксиома 3 (Третий закон Ньютона)

Две точки взаимодействуют с силами равными по модулю, противоположными по направлению и направленными вдоль одной прямой

$\vec F_{1,2} = -\vec F_{2,1}$


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

Если на точку действует несколько сил, то ускорение, сообщаемое точки этими силами равно геометрической сумме ускорений, сообщаемых точке каждой силой в отдельности
Отсюда вытекает, что при действии на точку нескольких сил справедливо уравнение

$m \, \vec a = \sum \vec F_k$



которое в механике называю гордым и страшным именем — дифференциальное уравнение движения точки в векторной форме.

Именно это уравнение служит отправной точкой для математического моделирования в механике. Решая именно это уравнение мы начнем осваивать основы математического моделирования как самостоятельной научной отрасли. Посмотрите на него внимательно, покопайтесь памяти, откройте учебники. Мы ещё не раз вспомним о нем.

Теперь объясню, что я имел в виду, говоря что законы Ньютона справедливы только для материальной точки. Это действительно так, представьте себе твердое тело, движущееся в пространстве. Черт возьми, выйдите на улицу, поднимите с земли палку побольше и швырните её подальше. Видите? Каждая точка палки движется по своей траектории. А значит у каждой точки палки своё собственное ускорение. К какой из этих точек применим второй закон Ньютона? Он применим к каждой точке палки, но не к палке в целом. Понятия «ускорение палки», «траектория палки» бессмысленны. Имеют смысл ускорение и траектория конкретной точки палки, например её центра масс.

Именно поэтому, когда описывают движение твердого тела, то используют теоремы динамики для твердого тела: теорему о движении центра масс, теорему об изменении момента количества движения и теорему об изменении кинетической энергии. Да, эти теоремы выведены опираясь на вышеперечисленные аксиомы (законы Ньютона). Но непосредственно эти законы не применимы к описанию движения твердого тела. Только для точки.

5. Дифференциальные уравнения движения точки


Итак, второй закон Ньютона и принцип независимости действия сил дают нам в руки серьезный математический аппарат в виде уравнения, связывающего между собой ускорение точки и действующие на эту точку силы. Если мы заменим ускорение, по определению данному выше, второй производной по времени от радиус-вектора точки, то увидим такое выражение

$ m \, \frac{d^2\vec r}{dt^2} = \sum \vec F_k $



Вроде бы просто, но на самом деле это чрезвычайно круто и важно. Посмотрите — слева у нас, стоит закон движения (да, продифференцированный дважды). А справа — сумма сил. Таким образом, это уравнение связывает между собой силы приложенные к точке и закон движения. А значит зная закон движения, можно вычислить силу, его вызывающую. Или наоборот, зная силы, приложенные к точке, найти закон движения.

В подавляющем большинстве случаев это уравнение не используют непосредственно, а раскладывают его на три уравнения в проекциях на оси координат

$ \begin{cases} &m \, \ddot x = \sum F_{kx} \\ &m \, \ddot y = \sum F_{ky} \\ &m \, \ddot z = \sum F_{kz} \end{cases} $



6. Задачи динамики точки


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

По известному закону движения точки определить действующую на точку силу
Пусть мы знаем закон движения точки, заданный в виде зависимости радиус-вектора от времени

$\vec r = \vec r(t)$



Тогда, достаточно два раза взять производную по времени от этой функции, умножить результат на массу, и мы получим ту силу, которая вызывает движение точки по данному закону

$\vec R = m \, \frac{d^2 \vec r}{dt^2}$



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

По известным силам, приложенным к точке, определить закон её движения
Силы, приложенные к точке можно сложить, получив вектор равнодействующей. Причем эта равнодействующая в общем случае будет зависеть от времени, положения точки в пространстве и её скорости

$m \, \frac{d^2\vec r}{dt^2} = \vec R\left(t, \vec r, \frac{d\vec r}{dt} \right)$



Мы получили уравнение, содержащее неизвестную функцию $\vec r(t)$ а так же две её производные. Такое уравнение в математике называют дифференциальным. Его решение в конечном счете сводится к интегрированию — операции обратной нахождению производной. Поскольку уравнение содержит вторую производную неизвестной функции, оно является уравнением второго порядка, а значит брать интеграл придется дважды.

Операция поиска интеграла в порядки сложнее операции поиска производной. И в подавляющем большинстве случаев результат нельзя выразить через элементарные математические функции. Как говорил наш преподаватель математики в университете: «Если вы видите быка, то можете представить себе какие котлеты из него получаться. Но видя котлеты, вам никогда не удастся реконструировать по ним быка...». По моему эта байка как нельзя лучше отражает смысл и сложность обратных операций.

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

Заключение


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

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

Ну. И что?
Реклама
Комментарии 36
  • +1
    Спасибо, мне понравилось.
    • 0
      Отличная статья, весь курс физики девятого класса в одной короткой статье, с четко изложенной причинно следственной связью! Жду продолжения с нетерпением, и даю читать сыну!
      • 0
        Спасибо, приятно, что люди интересуются и пишут статьи на такие темы)
        А в столицах с числаками хорошо, насколько я могу судить по своему опыту и опыту знакомых из других технических ВУЗов.
        • 0
          Спасибо за статью. Хорошая. Продолжайте.
          Но всё же не могу не вставить свои пять копеек.

          Трудно переоценить значение компьютерного моделирования
          Мне кажется, тут всё наоборот. То есть трудно недооценить значение моделирования. Моделирование — чрезвычайно переоценённый вид деятельности. Втыкается к месту и не к месту. Особенно в наших компьютерных делах.

          Если отбросить предрассудки и посмотреть на вещи трезво, можно обнаружить, что автомобиль не моделирует перемещение пассажиров и грузов, самолёт не моделирует полёт, текстовый редактор не моделирует ввод текста, бухгалтерская программа не моделирует составление бухбаланса. Они это всё не моделируют, а делают. Более того, мы сами, грешные, занимаемся моделированием крайне редко. Певец не моделирует исполнение песни, продавщица не моделирует продажу товара, дворник не моделирует подметание улицы. Я сейчас скажу вообще еретическую вещь: наш мозг не занимается моделированием окружающей реальности.

          Лирическое отступление о том, откуда взялась вся эта фигня
          Наш мейнстримный способ миропонимания находится под чрезвычайно сильным влиянием идей одного древнегреческого дядьки, которого звали Платон. С одной стороны, конечно, все понимают, что его рассуждения о каком-то зашкварном мире идей и о том, что предметы реального мира являются отражениями сущностей, обитающих в том мире — это, мягко говоря, бред. Но, тем не менее, господствующее мировоззрение прямо исходит из того, что объективно существуют законы (полная аналогия с платоновскими идеями), а реальность является их реализацией. А наши мозги эту самую реальность «отражают». Платоновская метафора «тени на стене пещеры» работает на полную катушку.

          Ни в коем случае не спорю с тем, что моделирование, когда оно в тему — чрезвычайно полезный и мощный инструмент. Честь и хвала тем, кто умеет это делать и применяет этот инструмент к месту. Но, положа руку на сердце, должен признать, что из той горы кода, которую я написал за почти 30 лет профессионального программирования, моделирование составляет строго 0%. Впрочем нет, поскольку юнит-тестирование с некоторой натяжкой можно причислить к моделированию :))
          • +1
            Так вы просто не писали программы для научных исследований в области физики, химии, экономики, географии, лингвистики, биологии и экологии; для систем позиционирования; ИСПР и роботов; компьютерных игр; сервисов сведения информации о погоде; пеленгаторов и постановщиков помех и многого другого.
            • 0
              Ну давайте посмотрим внимательно. Вот передо мной комп. На нём чёртовы гигабайты софта: операционка, офис, браузеры, куча разнообразных редакторов, среды разработки, коммуникационные проги, СУБД, всякое разное служебное/вспомогательное. Что из этого занимается моделированием хоть чего-нибудь? Да ничего! Ни в каком виде. Никогда.

              Я знаком всего с двумя людьми, для которых моделирование — рабочий инструмент. Естественно, они пишут модели. Один из этих двоих, кстати, мой собственный сын. Вся остальная толпа знакомых айтишников не занимается научными расчётами примерно никогда. Давайте посмотрим правде в глаза: моделирование — чрезвычайно важная, но очень редкая и специфичная технологическая область.

              Что касается игрушек, то где там моделирование? В казуалках им и не пахнет. Но даже в 3D-шутере наличие моделирования — под большим вопросом. Нужно всё-таки понимать, что модель (что компьютерная, что натурная, например, для продувания в аэродинамической трубе) — это искусственный объект, созданный для удобства изучения свойств объекта реального в случае, когда исследование реального долго/дорого/жалко/неудобно/невозможно. Что-то мне подсказывает, что смысл, например, GTA — отнюдь не в имитационном моделировании судьбы бандита в Лос-Анджелесе. Но тут, конечно, вопрос открытый и на своей версии настаивать не буду.
              • 0
                Вы слишком узко понимаете термин «модель». Сильно уже, чем большинство людей, в том числе — специалистов.
                • 0
                  Ну, не знаю. Моё понимание неплохо соответствует тому, что написано хотя бы даже в Википедии. Не вижу резонов разводить терминологическую путаницу примешивая то, что по-хорошему к этому понятию не относится.
                • 0
                  На самом деле скорее всего ваша операционная система сейчас моделирует физическую память, и предоставляет программистам доступ к адресам, которые на самом деле привели бы бог знает куда. А в компьютерных играх моделируется действие гравитации, чтобы объекты падали по параболе, и часто — ещё и столкновения, чтобы отскакивали, и не проходили друг сквозь друга. Нет ни одного современного 3d шутера без физического движка, который суть — система моделирования.
                  • 0
                    Этак мы дойдём до того, что сковородка моделирует котлету, лопата моделирует землю, а слово «жопа» моделирует жопу :))

                    Я же говорю, глупый и смешной платонизм с идеей отражения въелся глубоко в наше коллективное бессознательное. Везде нам чудятся модели, отражения и прочие тени на стене пещеры. Моделировать нужно тогда, когда действительно нужно моделировать. Например, моделирование движения воздушных масс в погодной модели — это полезно, почётно и интересно, моделирование поведения химических соединений — тоже. А вот моделировать оперативу операционной системой — это, извините, мимо кассы.

                    Что касается физического движка, то он действительно конструктивно может быть похож на модель, но, по-хорошему, моделью не является. В 3D-шутеры играют не для того, чтобы исследовать свойства разлёта осколков, а для того, чтобы нахрен поубивать всех врагов. Насколько мне известно. А физический движок там приделывается максимально похожим на физику реального мира потому, что в виртуальном мире, похожем на реальный, играть интереснее.

                    Нет в 3D-шутере ситуации моделирования. Разница — в целеполагании действующего субъекта. Там есть ситуация убивания виртуальных врагов.
                    • +1
                      mmu+ОС это модель памяти. Это абстракция, которая в точности повторяет свойства физической памяти, но физической памятью не является. Её цель моделировать чуть более высокоуровневую память, в которой проще работать (страницы и всё такое). Но на самом деле, этой памяти не существует физически — это просто модель.
                      Я 8 лет занимаюсь наукой о моделях, и я знаю совершенно точно, что в рамках моделей работают. И не всегда цель — исследование самой этой модели. Вот вы пользуетесь ОС, и работаете в рамках её модели памяти. Я создаю смешанную модель роста нанокристаллов в матрице, и работаю в её рамках над вопросами пропорций металлов. Я создаю грубую модель физического мира и стреляю в ней во врагов. То же самое делает пилот симулятора перед тем как сесть за настоящий истребитель — он тоже использует модель. И это всё один и тот же термин модель. Модель — не обязательно нужна для научных исследований, часто даже наоборот — модель является продуктом исследования, готовым к употреблению в любых сферах. Модель — это слегка более грубая копия чего-то реального, которую немного проще формализовать на языке математике и/или контролировать в эксперименте. Вот и всё. Вы можете использовать её для понимания причины чего-то, или для предсказания каких-то величин, например температуры. А можете просто использовать её, и работать в ней. Модель в науке — это всегда модель в её научном понимании, это отражения реального мира. И здесь нет никакого конфликта с бытовой терминологией. Ваши размышления о разнице между этими вещами неверны. Вот вы знаете что Земля имеет форму шара — это выяснили учёные, они построили модель. Модель умозрительную, поскольку увидеть Землю со стороны в то время было нельзя. Значит каждый раз когда вы просто летите в Австралию на запад, а не на восток, вы неявно используете научную модель Земли, эта модель была продуктом научных исследований. При чём gps в вашем самолёте будет использовать ещё более точную модель Земли — у него будут различные поправки, пока вы пролетаете над разными участками, и компас будет менять коэффициент магнитного склонения в соответствии с моделью магнитного поля вокруг Земли. И представьте себе, и курс самолёта, и работа с этими датчиками осуществляется программами, которые необходимо писать людям. Используя модели — геоида Земли, профиля магнитного поля, и многих других. Если вы играете в игру — то точно так же используете модель. Всего лишь несколько более грубую чем в научных исследованиях, и с другими целями. Но это не делает её не моделью, потому что она стремится к реализму, она — математически формализованые законы движения и столкновений. Лично я дважды применял модели из игр в чисто научных целях. В материалах конференции в Швейцарии реально были взяты скриншоты из игры, как визуализация микроскопики сил адгезиии, рядом с микроснимками из реального мира для сравнения. Игра позволила посмотреть предельные случаи, без необходимости писать программу. Точно так же в другой раз я использовал игру с физическим движком для быстрого прототипирования меанического устройства. Когда я вырезал детали, я воспользовался теми расстояниями, которые подогнал в компьютерной игре. Я не злоупотребляю играми в науке, я просто могу использовать почти всё что попадает в руки ради науки. И это потому, что люди решают, как им использовать инструмент. Скрепкой можно скреплять бумаги, а можно сделать кз мимо перегоревшей цепи в устройстве. Точно так же модель в игре — можно просто бить стёкла чтобы потом засесть снайпером, а можно и наукой заниматься. Модель — такой же инструмент в руках человека, как и молоток. Конечно, у него есть назначение. Железной частью молотка можно замкнуть цепь, а деревянную ручку можно сжечь. Можно выкинуть его из воздушного шара с прочим хламом, чтобы не упасть. А можно вытеснять им воду. Просто его используют не для забивания гвоздей столь же редко, как компьютерную игру для науки. Но сути самого предмета это не меняет. Физический движок сделан с целью, и предназначен для симуляции разбивания ящиков для игроков в игру. Но также он является моделью физики. Как молоток является инструментом, который имеет объём, массу, форму, деревянные и металлические части. Движок игры — это модель физики, которая симулирует силу тяжести, силу трения, силу реакции опоры, и законы движения из реального мира. С этим ничего не сделать, и это правда, вне зависимости от того, как его применяют. Вам надо расширять свои знания о моделях.
                      • 0
                        Кстати, по ходу дела вырисовывается некоторая ясность. Предлагаю моделью считать объект, с которым субъект взаимодействует вместо реального. Можно начинающего пилота посадить за штурвал настоящего самолёта, а потом потушить пожар в соседней деревне, убрать обломки и похоронить погибших, а можно посадить его сначала за симулятор и обойтись без похорон. Симулятор — модель, потому что это объект, с которым субъект (начинающий пилот) взаимодействует вместо реального.

                        Вроде бы такая интерпретация выглядит достойно, но есть один нюанс, который надо учесть. Нюанс в том, что мы непосредственно вообще ни с чем не взаимодействуем. Мы даже не можем непосредственно потрогать стол, за которым сидим. Между рукой и столом в любом случае будет тонкая прослойка, электрические поля в которой не дают веществу руки коснуться вещества стола. Можно ли сказать, что вместо взаимодействия с объектом «стол» мы взаимодействуем с его моделью, являющейся электрическими полями? ИМХО, безумие. Поэтому давайте всё же вернём крышу на место и условимся считать, что модель — это всё же объект, который специально создан для того, чтобы с ним играть вместо того, чтобы играть с настоящим.

                        При этом оказывается не важным, материален ли реальный объект. Создание нематериальных моделей нематериальных объектов — тоже вполне достойное занятие. Или даже материальных моделей нематериальных объектов. Тоже норм. Даже не важно, чтобы модель была меньше/легче/проще объекта реального. Например, в табличку, в которой ожидается не более миллиона строк, взять и нафигачить 10млн строк тестовых данных чтобы посмотреть, где включатся тормоза.
                        Вам надо расширять свои знания о моделях.
                        Если моделями называется вообще всё, то надо расширить знание… чего? Всего?
                        Надо как-то попытаться отделить мух от котлет. Пусть моделями будет не всё. Пусть будут вещи, которые моделями определённо не являются. Вот тогда мы научимся точно идентифицировать предмет рассуждения и продуктивно его обсуждать.
                  • 0
                    У вас редукцированное представление о моделировании. В соседней статье читаю:
                    Одной из причин, по которой меня так заинтересовала реализация этого проекта, была архитектура. Я обожаю моделирование ...

                    Что он моделирует? Старается приблизиться к реалистичному изображению (фотореалистичному, правдоподобной стилизации, ...). Каким образом? Строит МОДЕЛЬ, оценивает модель некоторым критерием и затем корректирует до полного соответствия критерию. В конце концов предлагает набор эвристик, которые на порядки сокращают объемы вычислений для получения нужно результата. По мне так это и есть полноценное моделирование.

                    А у вас получается как с искусственным интеллектом: сперва задача относится к ИИ, а когда нашли для нее алгоритм, уже не относится. Не знали как распознать тексты (речь, образы...) — занимались ИИ исследователи. Придумали алгоритм — больше не задача ИИ. Но ведь моделирование это и есть процесс поиска менее ресурсоемкого метода/алгоритма.
                    • 0

                      Вот в этом и отличие айтишника- программиста от инженера. Для инженера моделирование (и программирование!) не самоцель деятельности, а только инструмент для достижения цели. Ту же балку с защемленным концом инженер на модели в САПРе считает.

                      • 0
                        Модель — симуляция реального объекта. И не важно — для езды машинки в гта, или для оптимизации подвески реальной машины; решение школной задачки о брошеном камне — настолько же модель, как модель для расчета баллистичесуих таблиц. Грубая или точная, но модель. А уж для высоких целей, тренировки школьника или просто поиграться — подавно в определении не учавствуют.
                    • 0
                      автомобиль не моделирует перемещение пассажиров и грузов, самолёт не моделирует полёт, текстовый редактор не моделирует ввод текста, бухгалтерская программа не моделирует составление бухбаланса

                      Конечно же. Потому, что модель автомобиля моделирует перемещение пассажиров и грузов, модель самолета моделирует полёт и далее по тексту. Вообще, у вас крайне странная аргументация. Полагаю, потому, что вы смотрите на вопрос сугубо с точки зрения IT-шникаю
                      Я не знаю, как дело обстоит там, в этих «ваших компьютерных кругах», но в естественных науках, разработке технических продуктов и подобных областях деятельности без моделирования не обойтись. И модели там очень-очень необходимы для работы. Я имею в виду, что случаев, когда моделирование «в тему», как вы говорите, очень много.
                      • 0
                        Единицы занимаются моделированием автомобиля, а миллионы его изготавливают и используют. Более того, даже в процессе проектирования автомобиля разнообразные виды моделирования — очень важные, но отнюдь не основные составляющие процесса. Я неплохо знаком с железячным конструированием. Иногда по ходу дела бывает полезно изготовить макет, но чаще всего никто этим не занимается, потому что не нужно.
                        • 0

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

                      • 0
                        Про тесты вы сказали — это модель реального бизнес-процесса.
                        Но и сам бизнес-процесс, зафиксированный на бумаге — это модель, т.е. упрощение того, что происходит в реальности.

                        Например, Jira — это модель того, как программист выполняет задачи. В реальности у задачи не только состояния new/in progress/blocked/implemented/tested. Мы упрощаем, не вводя «key developer on vacation» или «у заказчика еще одна идея», а описываем эти состояния тем что есть, то есть приближенно.
                        Когда заказчик хочет, чтобы его сайт обновлялся мгновенно — мы записываем «отклик не более 100мс для 95% запросов». Мы сначала строим модель, а потом уже для модели разрабатываем решение. Возможно, это делаете не вы лично, а бизнес-аналитик или дизайнер — но кто-то перевел требование заказчика «хочу красиво» в модель «красная кнопка на треть экрана».

                        Я исхожу из того, что модель — это отбрасывание несущественных малозначимых деталей с сохранением основных так, чтобы решение совпадало с реальным миром с заданной точностью. Для задачи «движение Земли вокруг Солнца» мы отбрасываем притяжение Нептуна, а для «хочу красиво» — каким шрифтом будет надпись на кнопке.

                        P.S. Впрочем, численное моделирование в ежедневной практике для большинства многих разработчиков действительно не встречается.
                        • 0
                          Я специально сделал оговорку, что «юнит-тестирование с некоторой натяжкой можно причислить к моделированию». Притом, что характерно, далеко не всегда. Например, в тесте бывает иногда полезно подавать на вход такую хрень, которая реально на вход никогда не придёт. Чисто чтобы покрыть тестами весь код.

                          бизнес-процесс, зафиксированный на бумаге — это модель
                          Слишком широкое понимание понятия «модель». Излишне широкое. Так у нас и фотография девушки станет моделью этой девушки. И её имя станет моделью её же.

                          Попробуйте уйти от моделе-ориентированных рассуждений и почувствуйте, как оно всё становится глубже, разнообразнее и интереснее. Вдруг окажется, что запись в таблице «clients» — это уже не модель клиента, а… что? Возможно, запоминание события узнавания о существовании этого клиента. При таком смешном развороте, например, можно прийти к идее организации списка клиентов в виде темпоральной базы данных. В моделе-ориентированном подходе на полноценную темпоральность, например, не выйти, потому что она концептуально про другое. Модель — это отражение реальности, а темпоральная база — фиксация потока событий. В общем, попробуйте. Это интересно.
                          • 0
                            Я привел свое понимание понятия «модель».
                            С моей точки зрения, для целей поиска человека фотография может быть моделью человека: многое отбросили, но параметры, позволяющие решить задачу найти девушку, оставили. Замечу, эта модель не очень хороша, но так всегда: чем проще модель, тем легче с ней работать. Ну, до определенного предела. Фоторобот — крайняя степень модели: чрезмерное упрощение приводит к множеству ошибок.
                            Если же задача «выбор жены», то фотография — негодная модель, слишком много значимых деталей отброшено.

                            В моем понимании моделирование неразрывно связано с решаемой задачей. И для какой-то задачи фиксация потока событий будет частью модели. Но не для каждой.

                            Мне интересно узнать, что такое «модель» в вашем понимании.
                      • 0
                        Замечательная статья. Сравнивая методические пособия разных вузов и стран, должен заметить, что эта информация изложена далеко не в каждом.
                        Есть некоторое пожелание — увидеть рядом с естественным способом задания движения ремарку о репере Френе и возможности удобного восстановления неизвестных траекторий в случае действия сил завязанных на аксиальных векторах. Также оно буквально необходимо для правильных симуляций некоторых систем, где мы хотим брать производные по направлению движения и используем лагранжианы.
                        А ещё было бы полезным указать границы, где поиск аналитического решения становится бессмысленым, и где уже следует применять симуляции (а также про ограничения самих симуляций).
                        • 0
                          В университете, где училась моя дочка, оно так и называлось: численное моделирование для физиков. Но, как всегда в американских университетах, может брать кто угодно.

                          Сначала записалась куча. К концу курса выжило 1 физик (дочка), два химика и пять инженеров.

                          Зато как кульно: после объяснения GSL профессор дает дом. задание: это оригинальный файл данных, по которому мы нашли бозон Хиггса (он входил в коллаборацию). Дом. задание- найти Хиггса!

                          Работали в плоском С в Red Hat.

                          P.S. Насколько я помню, они начали с нелинейного маятника, считали руками константу Фейгенбаума, потом- фазовые переходы в Изинге, Монте- Карло, еще что то.
                          • 0
                            У меня в университете курс был не такой подробный, но зато на последующих курсах, уже физических, от нас ожидали умения моделировать как боженька. Как раз в курсе про бифуркации давали домашние задания такого плана, ну-ка, найдите расходимость в акой модели. ЗЫ с точки зрения программирования, Изинг и Монте-Карло вообще простые (если вручную не создавался кастомный рандомизатор). А вот задачка с маятником уже сложнее (если не решается в пакете с готовым физическим движком). У нас сложные маятники — нелинейные с накачкой и со степенями свободы, были в конце вообще. Что интересно, в итоге экзамены у нас сдало 8 человек из тех кто проходил курсы по нелинейщине. Мб это некая мировая константа? Только 7-8 человек на вуз могут изучить моделирование=)
                            • 0
                              Они потом на Изинге учили распараллеливание. Особенно на кубическом. Уложили весь университетский компьютер (7 тыс. процессоров). А потом перешли от Изинга простейшим нейронным сетям.

                              Монте-Карло в простейшей форме (объем шара) интересовал с точки зрения: сколько нужно добавить попыток, чтобы получить следующий десятичный знак. А! А потом же начальные условия для Изинга.

                              Маятник- без движка, разумеется. У них первые три недели был crash course по С, там они наваяли Рунге- Кутту, и рубили маятник по ней. Разумеется, с накачкой, чтобы бифуркации иметь.

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

                              P.S. Почему я помню- я тогда как раз получил новенький комп для работы с макс начинкой (на то время). Ну так мы и сравнивали. Дите на кластере, я — в MS Visual Studio, Интеловский компилятор, GCC под Cygwin. Одиночка победила (не помню какой компилятор).
                              • 0

                                Какая у вас выдающаяся дочь!
                                Ссылку на курс не покажете?
                                Имхо, преп должен контролировать ожидания студентов, а не тратить их время и нервы

                                • 0
                                  Нормальная дочь. Способности есть, но главное- что добрая, друзья есть.
                                  Там в ссылке просто аннотация
                                  www.physics.northwestern.edu/undergraduate/courses/catalog.html
                                  Курс 352.

                                  Но это специфика США: больше всех муштруют физиков. В дочкин год из этого большого универа вышло 13 физиков.
                                  • 0
                                    Опять таки, интересно сравнивать со своим — посмотрел на вики что там 20 тыс студентов и докторантов, и счёт идёт немного иначе, чем у нас: статистика отдельно бакалавр и магистры+докторанты. Если пересчитать по бакалаврам в наши бакалавр+магистр, то будет где-то 13 тысяч студентов (б+м). И 13 физиков в год. В мой год выпуска у меня в университете училось 15 тысяч, и выпустилось 19 физиков (либо 27, смотря кого учитывать как физика). В принципе числа близкие. А если усреднять мой год со следующим, то получится что у нас даже более жёсткий, либо точно такой же отбор… 15 или 11 человек в год, опять таки, в завиимости от того кого считать.
                                    • 0
                                      Спасибо. Младшекурсники которые ищут бозон Гибса — это круто. Жаль, Др. Хахн на страничку курса не расщедрился.
                                      А меня в другом университете на другом факультете попросили детям жизнь не усложнять. :)
                                      • 0
                                        Нужно гуглить. У него были очень подробные pdf. Свои силы он не экономил. Студенческие- тоже. Т.е. где то эта страничка с pdf cуществует.

                                        Но когда их осталось счетное количество, он им честно сказал, что он всем поставит А. Так что борются они только, кому А+, кому -. Потому что офмцмальные требования были- курс общей физики+ (можно параллельно)- дифф. ур. для физиков/ инженеров. А он им радостно сказал, что не каждый мастер поймет его курс.
                                  • 0
                                    Тогда апплодирую. Действительно крутой курс. У нас некоторые такие вещи были, но не на параллельных вычислениях, и плюс ко всему большая часть была не то чтобы обяязательной — я в итоге на парах маятник даже не начал делать, разленился и воспользовался возможностью «зачесть за рейтинг» две домашки. Правда, потом всё равно в рамках какого-то проекта с механикой делал…
                                    • 0
                                      ДонНУ? Круто же! Заходил как-то в гости.
                                      Как наш проф. на квантах сказал: ( не дословно ) «фундаментальное преподавать надо обязательно. А то, что потребуется вы и сами быстро выучите».
                                      • 0
                                        Ага. Только сейчас уже тот. Последние 3 года физиков не выпускалось вообще. Только один выпуск физиков-педагогов в 2016, но это совсем не то.
                                        Профессор, однако, прав.
                              • 0
                                Справедливости ради стоит отметить, что механика занимается не только материальными точками и твёрдым телом, но и сплошной средой. Предчувствую рассмотрение методов Эйлера и Рунге-Кутты, а также полное игнорирование лагранжевой и гамильтоновой механик.
                                • 0

                                  Да и динамические системы не сводятся к механическим.

                                  • 0
                                    Не сводятся. Но пример механики самый наглядный

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое