Вам могло показаться, что в предыдущем параграфе мы высказали два суждения, противоречащих друг другу. С одной стороны, мы сказали, что ЭВМ были созданы для вычислений. С другой стороны, ЭВМ используются для изучения явлений природы, для управления технологическими процессами, для рисования мультфильмов и так далее, т. е. для решения задач, с математикой непосредственно не связанных. Как же это удается? О том, что нужно сделать, чтобы применить ЭВМ для решения нематематических задач, и пойдет речь в этом параграфе.
Пусть вам надо решить какую-нибудь задачу, и вы хотите воспользоваться услугами ЭВМ. С чего начать? Прежде всего, нужно разобраться, что дано, что требуется получить, как связаны исходные данные и результаты. Иначе говоря, задача должна быть четко сформулирована. Такое требование вам может показаться странным: ведь обычно из формулировки школьной задачи можно однозначно извлечь, что дано, что требуется получить и как связаны исходные данные с результатами (хотя, быть может, не всегда просто это сделать). Однако жизнь постоянно заставляет решать задачи посложнее, чем в школьных учебниках. За примерами далеко ходить не надо.
Допустим, что вы решили в порядке индивидуальной трудовой деятельности организовать бюро по обмену квартир. Ваша задача - для каждой поступившей заявки подобрать вариант обмена (быть может, не один), удовлетворяющий все заинтересованные стороны. Попробуйте сформулировать эту задачу четко. Сразу возникает много вопросов: какие параметры имеющейся и требуемой жилплощади учитывать в заявке (количество и площадь комнат, их взаимное расположение, площадь кухни и других подсобных помещений, год постройки дома, этаж, наличие лифта и как часто он не работает и так далее)? Принимать ли заявки на съезд и разъезд? Учитывать ли стоимость кооперативной квартиры?.. А не отказаться ли от такой индивидуальной деятельности?
Или еще задача: составить расписание уроков в школе, удовлетворяющее и учителей, и школьников. Каковы исходные данные для этой задачи? Это зависит, конечно, от того, какое расписание считать хорошим. Можно задаться целью обеспечить лишь то, чтобы два разных урока не происходили в одно и то же время в одном классе. Тогда исходных данных будет немного: список учебных предметов да количество классов в каждой параллели. При этом, правда, может случиться так, что одному классу придется изучать только математику, другому - только географию, а учитель литературы вряд ли будет доволен, если ему поручат вести уроки физики. Попробуйте сами четко сформулировать задачу составления школьного расписания. Думаем, что после этого вы будете с пониманием относиться к нелегкому труду завуча, который решает эту задачу каждые полгода, а то и чаще.
Этих двух примеров, наверно, достаточно, чтобы понять: постановка задачи - важная часть (иногда говорят - половина) ее решения. Четко сформулировать задачу - это значит высказать те предположения, которые позволят в море информации об изучаемом явлении или объекте выудить исходные данные, определить, что будет служить результатом, и какова связь между исходными данными и результатом. Все это: предположения, исходные данные, результаты и связи между ними - называют моделью задачи.
Искусство составления моделей как раз и заключается в том, чтобы, не переусложнив модель, учесть в ней все существенное и отбросить второстепенное. Не в этом ли состоит искусство вообще? Ведь, пожалуй, каждый вид искусства, будь то живопись, скульптура или театр,- это создание моделей жизненных явлений с использованием присущих ему выразительных средств.
Составить хорошую модель задачи - дело непростое. Даже если решать эту задачу предстоит вам самим. А если модель надо будет объяснить компьютеру? В этом случае придется учитывать "способности" ЭВМ. Если, скажем, ЭВМ "умеет" только вычислять, то, высказывая предположения, нужно позаботиться о том, чтобы исходные данные и результаты были числами, а связи между ними - математическими соотношениями. Выполнив такой "перевод" задачи на язык математики, вы получите модель, которую обычно называют математической моделью.
Вы давно знакомы с математическими моделями, хотя ранее, быть может, и не встречали этого термина. Представьте себе, что нужно определить площадь поверхности письменного стола. Как обычно поступают в таком случае? Измеряют длину и ширину стола, а затем перемножают полученные числа. Это фактически означает, что реальный объект - поверхность стола - заменяется абстрактной математической моделью прямоугольником. Площадь этого прямоугольника и считается искомой.
Составляйте математические модели - они сохраняют лучшие свойства объектов!
Как видите, из всех свойств стола мы выделили только три: форма поверхности (прямоугольник) и длины двух сторон. Для нас не важны ни цвет стола, ни материал, из которого он сделан, ни то, как он используется. Если бы мы решали другую задачу о столе (скажем, сколько стоит изготовление стола), то возможно, для нас важна была бы как раз эта информация. Предположив, что поверхность стола - прямоугольник, мы легко можем указать те данные, которые будут исходными, а также то, что требуется получить (результаты). Ясно, что исходные данные - длины сторон (скажем, а и b), результат - площадь (скажем S). Они связаны соотношением S = ab. Важно отметить, что сделанные предположения позволили "перевести" нашу задачу на язык чисел: и исходные данные, и результат - числа, а соотношение между ними задается математической формулой. Итак, создавая математическую модель задачи, нужно:
1) выделить предположения, на которых будет основана математическая модель;
2) определить, что считать исходными данными и результатами;
3) записать математические соотношения (формулы, уравнения, неравенства и так далее), связывающие результаты с исходными данными.
Эти соотношения, конечно, не всегда выражают результат, как функцию от исходных данных - в примере со столом нам просто повезло: зная а и b, ничего не стоит подсчитать S.
Почему мы предположили, что поверхность стола имеет прямоугольную форму? Да потому, что мы его таким видим. Однако человеческий глаз как измерительный инструмент не отличается высокой точностью. При более высоких требованиях к точности прямоугольник придется заменить более подходящей фигурой, скажем, четырехугольником с непрямыми углами. В этом случае потребуются совсем другие исходные данные и появятся другие соотношения (подумайте какие).
Мы так подробно обсуждаем этот простой пример, чтобы подчеркнуть важную мысль: для одной и той же задачи могут быть созданы разные математические модели.
Разумеется, для вычисления площади стола, как правило, не так уж важно, какую модель выбрать. Но для многих жизненных задач выбор модели чрезвычайно важен.
К примеру, допустим, нужно проложить кратчайший маршрут самолета от одного города до другого. Если речь идет о Москве и Ленинграде, то мы не слишком ошибемся, предполагая, что Земля плоская, и проложив прямолинейный маршрут. Если это Москва и Владивосток, то, проложив по карте прямолинейный маршрут, мы ошибемся на сотни километров. Чтобы получить приемлемый результат, надо предположить, что Земля - шар, и проложить маршрут по дуге большого круга. Ведь хорошо известно, что на шаре кратчайший путь между двумя точками - дуга большого круга. Однако вы можете вспомнить про знаменитый полет Чкалова из Москвы в Америку. Чкалов летел через Северный полюс, а вовсе не по дуге большого круга. Почему? Да потому, что, прокладывая столь дальние маршруты, приходится учитывать, что Земля сплюснута у полюсов и имеет форму не шара, а геоида. В этом случае на "конкурсе" моделей побеждает геоид.
Можно сделать вывод: выбор той или иной модели зависит от точности, с которой мы хотим получить результат. Для повышения точности модель приходится усложнять, учитывая все новые и новые особенности изучаемого объекта. Правда, чем больше свойств мы учитываем в модели, тем, как правило, сложнее решение получающейся математической задачи.
Созданием математической модели завершается первый этап решения задачи с помощью ЭВМ. Для того чтобы ЭВМ произвела необходимые вычисления и получила ответ, нужно составить для нее четкую инструкцию, строго указать необходимую последовательность действий. Такая инструкция называется алгоритмом решения задачи. Составление алгоритма - второй этап решения задач с помощью ЭВМ. О том, как составлять алгоритмы, мы расскажем в последующих главах.
ЭВМ могут выполнять алгоритмы без участия человека, автоматически. Но для этого алгоритм должен быть записан в "понятной" для машины форме, т. е. на специальном языке, который называется языком программирования. Алгоритм, записанный на языке программирования, называется программой (в главе 7 подробно описывается один из языков программирования - Бейсик).
Проведя вычисления на ЭВМ, необходимо проанализировать результаты. Ведь сколько бы свойств мы не учитывали, модель всегда основана на некотором упрощении, и трудно быть абсолютно уверенным, что модель соответствует реальной задаче.
Такую уверенность можно обрести, лишь, сопоставив результаты расчетов с экспериментальными фактами, теоретическими воззрениями и другой информацией об изучаемом объекте.
При этом может возникнуть необходимость уточнить математическую модель, поскольку выяснится, что при ее разработке не были учтены какие-либо существенные свойства объекта (позже мы неоднократно столкнемся с такой ситуацией). Уточнив модель, исправляют алгоритм, проводят расчеты на ЭВМ и анализируют результаты. И опять может потребоваться уточнение модели... Так будет продолжаться до тех пор, пока анализ результатов не покажет их приемлемое соответствие знаниям об изучаемом объекте.
Таким образом, в третий этап решения задачи с помощью ЭВМ, помимо написания программы, входит проведение расчетов на ЭВМ и анализ результатов - вычислительный эксперимент. Теперь мы можем изобразить общую схему решения задач с помощью ЭВМ. Вот как она выглядит:
Эту схему мы в дальнейшем проследим на многих примерах. Построению математических моделей и созданию алгоритмов будут посвящены теоретические занятия. Выполняя лабораторные работы, вы научитесь составлять программы и анализировать результаты работы ЭВМ.
Вопросы
1. Каковы этапы решения задач с помощью ЭВМ?
2. Что нужно сделать, создавая математическую модель?
3. Что такое программа?
4. С какой целью проводят анализ результатов работы ЭВМ?
Задания для самостоятельного выполнения
1°. В комнате, имеющей двери и окна, будет проведен ремонт. Для расчета потребности в строительных материалах сделаны следующие предположения:
пол, потолок, стены и окна имеют форму прямоугольников;
дверь имеет форму прямоугольного параллелепипеда;
батареи центрального отопления, расположенные под окнами, имеют прямоугольную форму.
Выберите из этих предположений те, которые существенны для решения каждой из следующих задач:
а) рассчитать количество мела, необходимое для побелки стен и потолка комнаты;
б) рассчитать количество краски для покраски пола;
в) рассчитать количество обоев для оклейки стен;
г) рассчитать количество древесины, необходимое для изготовления двери.
2. Выскажите предположения, существенные для решения следующей задачи.
Участок цеха по производству туристского снаряжения выпускает брезентовые палатки. Требуется определить количество брезента, нужное для выполнения участком месячного плана.
3. По заказу Управления культуры была изготовлена бронзовая статуя девушки с веслом.
Определите те свойства статуи, которые существенны для решения каждой из следующих задач:
а) перевезти статую из мастерской в городской парк;
б) установить статую на площадке парка;
в) увеличить посещаемость городского парка;
г) продать статую с аукциона;
д) переплавить статую.
4°. Для каждой из задач 1,а - 1,г определите исходные данные и результаты. (Обратите внимание, что задачи 1,а, 1,б, 1,г не доопределены, т. е. перечислены не все сведения, существенные для решения этих задач.)
5. Завершите построение математических моделей, начатое при решении задач 1 и 4.
6°. Выскажите предположения, существенные для решения следующей задачи. Определите, что будет служить исходными данными, а что - результатом.
Во время ремонта корабля потребовалось заделать пробоину в обшивке. Имеется лист стали. Удастся ли с его помощью заделать пробоину?
7∗. Через иллюминатор затонувшего корабля требуется вытащить сундук с драгоценностями. Удастся ли это сделать? Составьте математическую модель для решения этой задачи.