Исследование математических моделей
Алгебра-9, Геометрия-7 P^g3
Исследование математических моделей начинается с записи формальной модели на языке определенной области математики: алгебры, геометрии и так далее.
Приближенное решение уравнений
На языке алгебры формальные модели записываются с помощью уравнений, точное решение которых основывается на поиске равносильных преобразований алгебраических выражений, позволяющих выразить переменную величину с помощью формулы. Точные решения существуют только для некоторых уравнений определенного вида (линейные, квадратные, тригонометрические и др.), поэтому для большинства уравнений приходится использовать методы приближенного решения с заданной точностью (графические, числовые и др.).
Графический метод. Построение графиков функций может использоваться для грубо приближенного решения уравнений. Для не имеющего точного алгебраического решения уравнения вида f(x) = 0, где f(x) — некоторая непрерывная функция, корень (или корни) этого уравнения является точкой (или точками) пересечения графика функции с осью ОХ.
Задача. Найти графическим методом корень уравнения ж3 - cos* = 0, которое не имеет точного алгебраического решения.
Формальная модель задана уравнением, для нахождения корня уравнения разработаем компьютерную модель на языке Visual Basic.
Проект «Приближенное решение уравнения»
1. В программный код проекта «Построение графика функции» в цикл построения графика ввести строку:
picGraph.PSet (sngX, sngX л 3 - Cos(sngX))
График функции пересекает ось ОХ один раз, и, следовательно, уравнение имеет один корень. По графику грубо приближенно можно определить, что х я 0,8.
Числовой метод половинного деления. Для решения уравнений с заданной точностью можно применить разработанные в вычислительной математике числовые итерационные методы решения уравнений. Если мы знаем отрезок, на котором существует корень, и функция на краях этого отрезка принимает значения разных знаков, то можно использовать метод половинного деления.
Идея метода состоит в выборе точности решения и сведении первоначального отрезка [А;В], на котором существует корень уравнения, к отрезку заданной точности. Процесс сводится к последовательному делению отрезков пополам точкой С = (А+В)/2 и отбрасыванию той половины отрезка ([А;С] или [С;В]), на котором корня нет.
Выбор нужной половины отрезка основывается на проверке знаков значений функции на его краях. Выбирается та половина, на которой произведение значений функции на краях отрицательно, то есть где функция пересекает ось абсцисс.
Процесс продолжается до тех пор, пока длина отрезка не станет меньше удвоенной точности. Деление этого отрезка пополам дает значение корня х = (А+В)/2 с заданной точностью.
2. Поместить на форму текстовые поля для ввода числовых значений концов отрезка А и В, поле для ввода точности вычислений и поле для вывода значений корня.
3. Поместить на форму кнопку и создать событийную процедуру, вычисляющую корень уравнения методом половинного деления с использованием цикла с постусловием:
Private Sub cmdNum_Click() dblA = Val(txtA.Text) dblB = Val(txtB.Text) dblE = Val(txtE.Text) Do
dblC = (dblA + dblB) / 2
If (dblA Л 3 - Cos (dblA) ) * (dblC л 3 - Cos (dblC) ) < 0 Then dblB = dblC Else
dblA = dblC End If
dblE |
Loop While (dblB - dblA) / 2 > txtX.Text = (dblA + dblB) / 2 End Sub
JajjcJ Ш ЯШ ц мммц |
CD-ROM |
4. Из графика функции видно, что корень находится на отрезке [0,5;1]. Введем в текстовые поля значения концов отрезка, а также точность вычислений (например, 0,00001). В текстовое поле будет выведено значение корня с заданной точностью: * = 0,86547.
Проект хранится в каталоге \textbook\VB\prjMath1\
Практические задания
5.9. Приближенно решить уравнение дг3 - cos* = 0 с использованием компьютерной модели в электронных таблицах.
Вероятностные модели
Вероятностные модели базируются на использовании больших серий испытаний со случайными параметрами, причем точность полученных результатов зависит от количества проведенных опытов. Воспользуемся методом Монте-Карло для приближенного вычисления площадей геометрических фигур.
Качественная модель метода Монте-Карло. Сначала построим качественную вероятностную модель данного метода:
• поместим геометрическую фигуру полностью внутрь квадрата;
• будем случайным образом «бросать» точки в этот квадрат, то есть с помощью генератора случайных чисел задавать точкам координаты внутри квадрата;
• будем считать, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в квадрате прибли-
зительно равно отношению площади фигуры к площади квадрата, причем это отношение тем точнее, чем больше количество точек. Формальная модель. Построим формальную модель для вычисления площади круга радиуса R, центр которого совпадает с началом координат. Круг вписан в квадрат со сторо- — ной 2R, площадь которого вычисляется как 4R2 (рис. 5.8).
Пусть N — количество точек, которые случайным образом генерируются внутри квадрата. Случайный
выбор координат точек, которые по- квадр™'3""
падают внутрь квадрата (N точек), должен производиться так, чтобы координаты точек х и у удовлетворяли условиям:
-R < х < R и -R < у < R. Пусть М — количество точек, попавших внутрь круга, то есть их координаты удовлетворяют условию:
х2 + у2 < R2.
Тогда площадь круга можно вычислить по формуле:
S = 4Д2 • M/N. Компьютерная модель. Разработаем на языке Visual Basic компьютерную модель, позволяющую определять площадь круга методом Монте-Карло.
■j Проект «Метод Монте-Карло»
1. Поместить на форму графическое поле, в котором будет отображаться процесс случайной генерации точек, квадрат, круг и оси координат.
2. Поместить на форму два текстовых поля для ввода радиуса окружности и количества генерируемых точек и одно поле для вывода значения площади круга.
3. Поместить на форму кнопку и создать для нее событийную процедуру, которая обеспечивает ввод значений радиуса окружности в переменную R, ввод количества генерируемых точек в переменную N, генерацию случайных точек, подсчет в переменной М количества точек, попавших внутрь круга, вычисление и вывод значения площади круга в текстовое поле:
Dim dblX, dblY As Double, S As Double
I, N, M, R As Long, |
1)-(R + 1, , В |
(R + 1)) |
Private Sub cmdl_Click() M = 0 picl.Cls 'Ввод значений R = Val(txtR) N = Val(txtN) picl.Scale (-(R + 1),R + picl.Line (-R, R)-(R, -R) , picl.Circle (0, 0), R 'Генерация точек For I = 1 To N dblX = 2 * R * Rnd - R dblY = 2 * R * Rnd - R picl.PSet (dblX, dblY)
If dblX Л 2 + dblY Next I
' Площадь
txtS.Text = 4 * R ' 'Ось X picl.Line For I = - (R picl.PSet (I, pxcl.Print I Next I 'Ось Y
2 <= R Then М = М + 1 (М / N) |
(-(R + 1), 0)- (R + 1, 0) |
+ 1) 0) |
То R + 1 |
+ 1))-(0, То R + 1 |
R + 1) |
picl.Line (0, - (R For I = -(R + 1) picl.PSet (0, I) picl.Print I Next I End Sub Ввести радиус окружности и количество генерируемых точек. После щелчка по кнопке Пуск в графическом поле будет отображен процесс генерации случайных точек, а в текстовое поле будет выведено значение площади круга.
Исследование модели. Существует геометрическая формула, позволяющая вычислить площадь круга: S = пR2. Если в процессе исследования модели в качестве радиуса окружности выбрать 1, то числовое значение площади круга будет соответствовать числу п. Таким образом, с помощью метода Монте-Карло можно определить с необходимой точностью значение числа я (при увеличении количества генерируемых точек можно наблюдать все большее приближение значения площади к значению числа л).
Проект хранится в каталоге гп Dr... гкзр \textbook\VB\prjMath2\ ш-ним ^
Практические задания
5.10. Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1, 0); (0, 1) и (1, 0).