Тема урока: "Математика и программирование вычислительных задач"

Разделы: Информатика


“Математика и программирование вычислительных задач”

Базовый курс информатики до сих пор включает разделы, наименее приятные для учителя, так как они всегда оставались наименее мотивированными для ученика. Это “Алгоритмизация” и “Программирование”. В какой степени разумно в нашу почти информационную эпоху оставлять в программе информатики эти разделы, “рудименты” века всеобщей программистской грамотности А.П. Ершова,– вопрос для дискуссии в другом месте, в другое время и на другом уровне. А пока нам с учениками приходится штурмовать этот “Эверест”. Так давайте вернем программированию его первоначальное назначение – решение сложных расчетных задач. За это математики нам только скажут: “Спасибо!”, а для учеников приоткроется одна из возможностей осознать единство картины мира, взаимосвязь изучаемых в школе учебных дисциплин.

Закрепление изученного в разделе “Реализация основных алгоритмических конструкций” материала можно выполнить по различным вариантам: проведение интегрированных уроков, на которых могут присутствовать преподаватель информатики или учитель математики, либо вместе (в зависимости от возможности оплаты совместного урока или желания педагогов). Предлагаемые при этом темы: “Методы приближенных вычислений”, “Решение трансцендентных уравнений” и “Рекуррентные вычисления” – результат многолетних испытаний терпения и способностей моих учеников сначала в гуманитарно-техническом лицее, а затем в общеобразовательной школе. Ценность подобного рода уроков в том, что закрепление навыков использования основных алгоритмических структур (линейная, условная, циклическая) проходит в форме, имеющей конкретный практический выход, проверяемый результат. Ученики стоят перед необходимостью разработки сложной математической модели. При этом востребованными и достаточными оказываются многие знания и умения учеников, полученные на уроках алгебры: построение графиков функций, преобразование алгебраических выражений и др. В данной публикации предлагаю рассмотреть приближенное вычисление площади криволинейной трапеции или приближенное вычисление определенного интеграла функции, заданной на отрезке [a,b].

Существует несколько методов вычисления:

  1. Метод средних прямоугольников.
  2. Метод левых прямоугольников
  3. Метод правых прямоугольников
  4. Метод трапеций.
  5. Метод парабол (метод Симпсона).
  6. Метод Монте-Карло.
  7. По формуле “трех восьмых” и др.

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

1. Метод средних прямоугольников.

img1.jpg (23395 bytes)

Необходимое условие применимости метода – функция должна быть непрерывной на отрезке [a,b], при этом b>a.

Отрезок [a, b] разбивается на несколько равных частей.

Пусть n – число разбиений отрезка, тогда дина каждого интервала h:

Каждый фрагмент может быть условно заменен прямоугольником со сторонами h и f(c). Следовательно, площадь криволинейной трапеции может быть вычислена как сумма прямоугольников с высотой h и основанием f(c), где c – середина интервала.

S=h f(c)

Si=h f(ci)

На этом вычислении основывается алгоритм метода средних прямоугольников. Если h – достаточно малая величина, то можно считать, что изменение f(с) незначительно на интервале от a до (a+h). Таким образом, искомая сумма находится с помощью определенного цикла, вычисляющего

для заданного начального значения c0:

.

Программа на языке Turbo Pascal для вычисления интеграла

img5.jpg (54566 bytes)

Результат работы программы для n=100 – 8.5911110358E-01 (т.е. 0, 85911110358).

Значение заданного интеграла, вычисленное с помощью табличного процессора Excel, равно 0.8591555814279. Таким образом, программа дает достаточно хорошее приближение при количестве разбиений интервала n=100.

2. Метод левых прямоугольников.

img2.jpg (22959 bytes)

Различие рассматриваемых методов вычисления (за исключением метода Монте-Карло) хорошо видно в формулах и в выбираемом начальном значении с0 :

,

Функция вычисляется на левом конце малого прямоугольника.

3. Метод правых прямоугольников

,

.

img3.jpg (21977 bytes)

Функция вычисляется на правом конце малого прямоугольника.

4. Метод трапеций.

Интервал [a, b] разбивается на n частей, каждую их которых считаем трапецией. Участок функции на отрезке условно принимается за линейный. Тогда .

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

,

.

Нетрудно заметить, что для всех рассмотренных выше методов используется одна и та же программа, в которой изменяется лишь начальное значение c0 (а также формула вычисления s в методе трапеций)

5. Метод Монте-Карло.

Свое название метод приобрел от имени известного города княжества Монако, мировой столицы азартных игр и игроков. Генератор случайных чисел, используемый для вычислений, по принципу действия не что иное, как “рулетка” – символ игровой индустрии.

img4.jpg (25715 bytes) 

Суть метода заключается в следующем. Для определения площади фигуры, ограниченной с одной стороны графиком функции F(x), а также отрезками AA2, BB1 и AB выполним дополнительные построения. “Заключим” фигуру в правильный прямоугольник со сторонами AA1, A1B1, B1B, AB.

Площадь прямоугольника Sp = (B-A)*f(B). С помощью генератора случайных чисел будем задавать координаты N точек, находящихся в прямоугольнике, всякий раз проверяя, оказывается точка внутри фигуры или нет и считая количество k попадающих в фигуру точек. Совершенно очевидно, что при достаточно большом количестве точек N искомая площадь фигуры Sf будет пропорциональна количеству попавших в неё точек k:

, следовательно

Программа на языке Turbo Pascal вычисления площади для функции f=x2:

img6.jpg (51047 bytes)

К недостаткам этого метода следует отнести тот факт, что координаты x и y точек, задаваемые генератором случайных чисел, имеют целые значения и весьма затрудняют вычисления в малом диапазоне [A,B]

6. Варианты заданий для проведения самостоятельной работы учащихся.

Задание

Ответ

1.

2.

3/2

3.

= 0.8591111035

4.

5.

9

6.

=

= 5.334773086

7.

1.84147098

8.

0.15

9.

= 1.73205080

10.

14.666666666

11.

/4

В принципе, возможность практического исполнения программ не является непременным условием изучения программирования. Однако она является сильнейшим стимулом – без такого стимула вряд ли у кого хватит интереса и терпения. Существуют и другие классы задач, позволяющих повысить интерес школьника к программированию, задач, результат которых очевиден и зрим: о них упоминалось в начале статьи. За её пределами реферата остались также рекурсии и рекурсивные функции – задачи, позволяющие говорить об “элегантном” программировании (нельзя объять необъятное). Хочу обратить внимание, что решение рассмотренных задач не требует от ученика серьезных навыков написания программ. Основная цель проведения уроков по любому из разделов – осознание необходимости изучения языка программирования не ради программирования: включение хотя бы одного из вышерассмотренных разделов в программу курса позволит изменить отношение ученика к языку программирования не как к объекту изучения, а как к средству решения поставленных задач.

Литература

  1. Абрамов С.А. Начала информатики/ С.А. Абрамов, Е.В. Зима – М.:Наука, Гл.ред.физ.-мат.лит., 1989.
  2. Справочник по математике (для научных работников и инженеров). Г. Корн, Т. Корн. – М.: “Наука”, 1974.
  3. Основы информатики и вычислительной техники. Учебник для 10-11 кл. средней школы./ А.Г.Гейн, В.Г.Житомирский, Е.В.Линецкий и др. – М.: Просвещение, 1991.
  4. Дагене В.А. Сто задач по программированию: книга для учащихся: Пер с лит./В.А.Дагене, Г.К. Григас и др. – М.:Просвещение, 1993.
  5. Рапаков Г.Г., Ржеутская С.Ю. Программирование на языке Pascal. – СИб.:БХВ-Петербург, 2004.