Исследование математических моделей
Исследование математических моделей начинается с записи формальной модели на языке определенной области математики: алгебры, геометрии и так далее.
Приближенное решение уравнений
На языке алгебры формальные модели записываются с помощью уравнений, точное решение которых основывается на поиске равносильных преобразований алгебраических выражений, позволяющих выразить переменную величину с помощью формулы. Точные решения существуют только для некоторых уравнений определенного вида (линейные, квадратные, тригонометрические и др.), поэтому для большинства уравнений приходится использовать методы приближенного решения с заданной точностью (графические, числовые и др.). Такие методы ещё называют «численными методами». Они позволяют получать решения с определённой степенью точности.
Графический метод. Построение графиков функций может использоваться для грубо приближенного решения уравнений. Для не имеющего точного алгебраического решения уравнения вида
f(x) = 0, где
f(x) — некоторая непрерывная функция, корень (или корни) этого уравнения является точкой (или точками) пересечения графика функции с осью
ОХ.
Один из численных методов носит название «МЕТОД ПОЛОВИННОГО ДЕЛЕНИЯ»
МЕТОД ПОЛОВИННОГО ДЕЛЕНИЯ
Качественная модель метода
С помощью метода половинного деления всегда можно получить приближённые значения максимума и ли минимума функции или корень уравнения вида f(x)=0 на отрезке [A;B]. Корень вычисляется с любой точностью при условии, что функция f(x) непрерывна на этом отрезке и принимает на концах отрезка значения разных знаков.
Ф
Пусть уравнение вида f(x) =0имеет на отрезке [A;B] единственный корень, причём функция f(x) непрерывна и на её концах принимает значения разных знаков.
Разделим отрезок [A;B] пополам точкой С: С=
ормальная модель.
y
f(x)=0
В
А В
А С В С11 С1 В
С111 х








Если f(С)
, то
1) либо f(x) меняет знак на отрезке [A;С]
2) либо f(x) меняет знак на отрезке [С;В]
Выбирая в каждом случае
тот из отрезков, на котором функция меняет знак, и продолжая процесс половинного деления дальше, можно
дойти до сколь угодно
малого отрезка, содержащего корень уравнения.
Если на каком-то этапе получен отрезок [A;B], содержащий корень, то приняв
х =
, получим погрешность (ошибку): d =
Компьютерная модель
Разработаем на языке Visual Basic, а затем проверим её в электронной таблице Microsoft Excel, компьютерную модель, позволяющую определять площадь круга методом Монте-Карло.
ЗАДАЧА Уравнение

имеет единственный корень на отрезке [1,3;1,5]. Найти этот корень с точностью Е (которую необходимо задавать с клавиатуры).
ПРИМЕР ПРОГРАММЫ
Метод половинного деления:
Private Sub cmd1_Click()
'график
'Задание масштаба
PicGraph.Scale (-1.5, 2)-(1.5, -2)
'Ось Х
PicGraph.Line (-1.5, 0)-(1.5, 0)
For i = -1.5 To 1.5 Step 0.5
PicGraph.PSet (i, 0) : PicGraph.Print i
Next i
'Ось Y
PicGraph.Line (0, 2)-(0, -2)
For i = -2 To 2
PicGraph.PSet (0, i) : PicGraph.Print i
Next i
'Построение графика
For X = -2 To 2 Step 0.01
PicGraph.PSet (X, X ^ 3 - Cos(X))
Next X
End Sub
Private Sub Cmd2_Click()
A = Val(TxtA.Text) : B = Val(TxtB.Text) : E = Val(TxtE.Text)
Do
C = (A + B) / 2
If (A ^ 3 - Cos(A)) * (C ^ 3 - Cos(C)) < 0 Then
B = C
Else
A = C
End If
Loop While Abs((B - A)) / 2 > E
TxtX.Text = (A + B) / 2
End Sub
Пример программы в архиве Пример01.rar
МЕТОД МОНТЕ-КАРЛО
позволяет вычислять с определённой степенью точности площадь сложной фигуры.
Для простейших фигур (прямоугольников, многоугольников, кругов) существуют формулы вычисления их площадей. Надо лишь в известные формулы подставить исходные данные. Но как быть, если фигура имеет сложную форму?
И


так, дана фигура сложной формы, вычислить её площадь.
П








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

N
F – количество точек, попавших внутрь фигуры
Sобщ – площадь квадрата SN – площадь фигуры
ЗАДАЧА: Вычислить площадь круга с центром в точке (0; 0) и радиусом R.
Вероятностные модели базируются на использовании больших серий испытаний со случайными параметрами, причем точность полученных результатов зависит от количества проведенных опытов. Воспользуемся методом Монте-Карло для приближенного вычисления площадей геометрических фигур.
Качественная модель метода Монте-Карло.
Сначала построим качественную вероятностную модель данного метода:
• поместим геометрическую фигуру полностью внутрь квадрата;
• будем случайным образом «бросать» точку в этот квадрат, то есть с помощью генератора случайных чисел задавать точкам координаты внутри квадрата;
• будем считать, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в квадрате приблизительно равно отношению площади фигуры к площади квадрата, причем это отношение тем точнее, чем больше количество точек.
Формальная модель.
Построим формальную модель для вычисления площади круга радиуса R, центр которого совпадает с началом координат.
Круг вписан в квадрат со стороной 2R, площадь которого вычисляется как 4R2 .
Пусть N — количество точек, которые случайным образом генерируются внутри квадрата. Случайный выбор координат точек, которые попадают внутрь квадрата (N точек), должен производиться так, чтобы
координаты точек х и у удовлетворяли условиям: -R < х < R и -R < у < R.
Пусть М — количество точек, попавших внутрь круга, то есть их координаты удовлетворяют условию: х2 + у2 < R2.
Тогда площадь круга можно вычислить по формуле; S = 4R2 • M/N.
Компьютерная модель. Разработаем на языке Visual Basic компьютерную модель, позволяющую определять площадь круга методом Монте-Карло.
ПРОГРАММЫ:
Метод Монте-Карло для окружности
D
txtS.Text = 4 * R ^ 2 * M / N
'Ось X
pic1.Line (-(R + 1), 0)-(R + 1, 0)
For I = -(R + 1) To R + 1
pic1.PSet (I, 0)
pic1.Print I
Next I
'Ось Y
pic1.Line (0, -(R + 1))-(0, R + 1)
For I = -(R + 1) To R + 1
pic1.PSet (0, I)
pic1.Print I
Next I
End Sub
im X, Y As Double, I, N, M, R As Long, S As Double
Private Sub cmd1_Click()
M = 0
pic1.Cls
R = Val(txtR)
N = Val(txtN)
pic1.Scale (-(R + 1), R + 1)-(R + 1, -(R + 1))
pic1.Line (-R, R)-(R, -R), , B
pic1.Circle (0, 0), R
'Генерация точек
For I = 1 To N
X = 2 * R * Rnd – R
Y = 2 * R * Rnd – R
pic1.PSet (X, Y)
If X ^ 2 + Y ^ 2 <= R^2 Then M = M + 1
Next I
ЗАДАНИЕ: Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1,0); (0,1); (1,0)
ПРОГРАММЫ:
Метод Монте-Карло для треугольника
Dim dblX, dblY As Double, I, N, M, a As Long, s As Double
Private Sub Command1_Click()
M = 0
Pic1.Cls
a = Val(Text1)
N = Val(Text2)
'оси координат
Pic1.Scale (-(a + 1), a + 1)-(a + 1, -(a + 1))
Pic1.Line (-a, a)-(a, 0), , B
Pic1.Line (-a, 0)-(0, a)
Pic1.Line (0, a)-(a, 0)
Pic1.Line (-(a + 1), 0)-(a + 1, 0)
For I = -(a + 1) To a + 1
Pic1.PSet (I, 0)
Pic1.Print I
Next I
Pic1.Line (0, -(a + 1))-(0, a + 1)
For I = -(a + 1) To a + 1
Pic1.PSet (0, I)
Pic1.Print I
Next I
'ввод данных и расчёт
For I = 1 To N
dblX = 2 * a * Rnd - a
dblY = a * Rnd
Pic1.PSet (dblX, dblY)
If dblY <= 1 - Abs(x) Then M = M + 1
Next I
Text3.Text = 3 * a * (M / N)
End Sub
Примеры программ в архиве Приложение5.rar