Компьютерная модель — это модель жизненного процесса или события, созданная с помощью компьютерных средств, и она может быть символьного (например, математическая модель, программы демонстрации и моделирования) или информационного типа.
Для создания компьютерных моделей используется системный подход.
Построение математической модели. Математическая модель должна описывать бесконечные сложности изучаемого явления, сохраняя его полезные свойства, настолько простой и достаточно полной, насколько нам нравится, и должна быть достаточно простой для анализа средствами, доступными в математике и обработанными на компьютере. При этом необходимо из множества «характеристик» изучаемого явления и «сведений» о нем выделить наиболее важные, а второстепенные и маловажные отбросить. Обычно для выяснения основных закономерностей основные «характеристики» явления сопоставляют с некоторыми величинами (числовыми значениями: переменными, векторами, матрицами, функциями и т. д.) и проводят их углубленный анализ. Для установления внутренних связей между «характеристиками» явления в математическую модель включают равенство, неравенство, уравнение, логическую структуру и другие операции, связывающие эти величины. В результате математическая модель принимает вид записанного на математическом языке закона природы, управляющего состоянием изучаемого объекта или происходящим в нем явлением. Эта модель включает в себя описания величин и характера взаимосвязи между ними. Важнейшей и значимой частью естественных и технических наук является построение математических моделей. Это требует от исследователя глубоких знаний в области науки, высокой математической культуры и опыта, развитой чувствительности и так далее. Создание новой удачной модели — большое достижение этой науки, важнейший этап в ее развитии. В основном при построении модели используют два принципа: дедуктивный (от общего к частному, т. е. рассматривается частный случай заранее известной или фундаментальной модели; например, построение модели свободно падающего тела по закон Ньютона) и индуктивная (от частного к общему, или сначала выдвигаются гипотезы и производится разложение сложного объекта, а затем проводится анализ и синтез; например, модель строения атома, Томсона, Резерфорда, Бора модели).
Классы используются в C++ для реализации двух вышеупомянутых концепций. Термин класс определяет тип объектов. Каждый представитель (копия) класса называется Объектом. Каждый Объект будет иметь свой особый статус. Состояние объекта определяется текущим значением его заданных членов. Функция класса определяется способностью его функций-членов выполнять операции над объектами класса.
Объект данного класса создается специальной функцией-членом, известной как конструктор, и уничтожается специальной функцией-членом, известной как деструктор.
Класс может ограничить ссылку теми, которые заданы внутри. Ограничения назначаются путем определения того, являются ли они общедоступными, частными или защищенными.
Класс определяет строгие условия связи для этого типа Объекта для связи с внешним миром. На закрытые данные или код можно ссылаться только внутри этого объекта. С другой стороны, общедоступные данные и код, даже если они определены внутри Объекта, доступны из любой точки программы и служат для создания связи между Объектом и внешним миром. Созданными объектами можно манипулировать с помощью сообщений (или запросов), которые создаются простым вызовом их функций-членов. Позже термин запрос используется, чтобы избежать путаницы с сообщениями Windows.
Наследование — это процесс, при котором один объект может наследовать свойства другого. Благодаря наследованию можно создавать производные классы на основе существующих классов. Производный класс (класс-потомок) наследует данные и функции от своего родительского класса (класс-предок) по наследству и добавляет к своей строке данные и функции, которые позволяют реализовать только те аспекты, которые уникальны для него. На защищенные члены и функции-члены класса-предка можно ссылаться в классе-предке. Кроме того, функции родительского класса могут быть переопределены в производном классе. Итак, на основе наследования можно создать генеалогическое древо классов с отношениями «мать-потомок» друг к другу. Термин базовый класс используется как синоним родительского класса в дереве классов. Если объект наследует свои атрибуты (данные-члены и функции-члены) только от одного родительского класса, это называется одиночным (или простым) наследованием. Если объект наследует свои атрибуты от нескольких родительских классов, это называется пакетным наследованием.
Полиморфизм — это способность кода вести себя по-разному в зависимости от ситуации, возникающей во время выполнения. Полиморфизм является не только свойством Объектов, но и свойством функций-членов, а они, в частности, являются одноименными функциями-членами, для функций, которые имеют разные типы аргументов и действия которых зависят от типа переданных аргументов к нему (на месте) отображается в доступности. Это называется перезагрузкой функции. К операциям также может применяться полиморфизм, то есть содержание (результат) операции зависит от типа операнда (заданного). Этот тип полиморфизма называется перегрузкой действий.
Другое определение полиморфизма таково: полиморфизм — это способность указателей (ссылок) на базовый класс принимать различные формы (значения) при вызове виртуальных функций. Эта особенность C++ является результатом позднего связывания. Адреса функций-членов, вызываемых в отложенном связывании, определяются динамически во время выполнения программы. В традиционных языках программирования эти адреса являются статическими и определяются во время компиляции (предварительной привязки). Позднее связывание подходит только для виртуальных функций.
СПИСОК ИСПОЛЬЗУЕМЫХ ССЫЛОК
Ричард Л. Берден и Дж. Дуглас Файрес. Численный анализ. Девятое издание, Бостон, США, 2011. – 895 с.
Л. Риджуэй Скотт. Численный анализ. Издательство Принстонского университета, 2011. – 342 с.
Абдухамидов А.У., Худойназаров С. Практические и лабораторные занятия по вычислительным методам. - Ташкент: Учитель, 1995. - 240 с.
Алексеев Э.Р., Чеснокова О.В. Решение задач вычислительной математики в пакетах Mathcad, Mathlab, Maple (Самоучитель). - М.: НТ Пресс, 2006. -
496 стр.
Do'stlaringiz bilan baham: |