Pull to refresh

Comments 36

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Не сводятся. Но пример механики самый наглядный
Only those users with full accounts are able to leave comments. Log in, please.