Информатика в задачах, примерах, алгоритмах
.pdf
7. Циклы
y = |
|
10 ln(x + 5)2 |
+ 5 |
|
. |
||||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
2 |
|
x |
|
3 |
|||
|
|
|
|
|
|||||
|
300Sin |
|
|
|
+ 5 |
+ 5 + 2 |
|
||
|
|
3 |
|||||||
|
|
|
|
|
|
|
|
|
|
Îêíî (–30, –30) – (30, 30).
Ответ: Ñì. ðèñ. 10.
245. Построить график функции:
Ðèñ. 10
81
Информатика в задачах, примерах, алгоритмах
y = |
10 ln(x + 5)2 |
+ 5 |
. |
|||||
|
|
|
|
|
|
|
||
|
2 |
|
x |
|
|
3 |
||
|
|
|
|
|||||
|
300Sin |
|
|
|
+ |
5 |
+ 7 |
|
|
|
3 |
||||||
|
|
|
|
|
|
|
|
|
Îêíî (–30, –30) – (30, 30)
Ответ: Ñì. ðèñ. 11.
246. Построить график функции:
Ðèñ. 11
82
7. Циклы
y = |
10 ln(x + 5)2 |
+ 5 |
. |
|||
|
|
|
|
|||
10Sin2 |
(3x |
+ 10)3 + 7 |
||||
|
|
|||||
Îêíî (–10, –10) – (10, 10).
Ответ: Ñì. ðèñ. 12.
247. Построить график функции:
Ðèñ. 12
83
Информатика в задачах, примерах, алгоритмах
y = |
10 ln(x + 5)2 |
+ 5 |
|
. |
||
|
|
|
|
|
||
30Sin2 |
(3x |
+ 10)3 + |
|
|||
|
7x |
|||||
Îêíî (–10, –10) – (10, 10).
Ответ: Ñì. ðèñ. 13.
248. Построить график функции:
Ðèñ. 13
84
7. Циклы
y = ±
(3
a 2 − 3
x 2 )3
.
Îêíî (–10, –10) – (10, 10).
Ответ: Ñì. ðèñ. 14.
Данная фигура носит название Астроида 249. Построить график функции:
Ðèñ. 14
85
Информатика в задачах, примерах, алгоритмах
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
+ |
a |
2 |
− x |
2 |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
2 |
|
2 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
y = ± a ln |
|
|
|
|
|
|
|
|
− |
a |
|
− x |
|
|
. |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Îêíî (–30, –30) – (30, 30).
Ответ: При a = 10, ñì. ðèñ. 15.
Данная фигура носит название Трактриса 250. Построить график функции:
Ðèñ. 15
86
7. Циклы
y = |
1 + log2 (x 2 + x) |
|
|
. |
|
1 + log2x (x + 1) |
||
Îêíî (–9, –9) – (9, 9).
Ответ: Ñì. ðèñ. 16.
Ðèñ. 16
87
Информатика в задачах, примерах, алгоритмах
7.5. Решение уравнений
Приближенные методы решения алгебраических уравнений
Численное решение конечных уравнений (приближенное определение значений корней) проводится по следующей методике. Сначала выявляют достаточно малые промежутки для каждого из корней, то есть выполняют процедуру отделения корней. Затем находят в этих промежутках значение корней с заданной точностью, обеспечивая тем самым уточнение корней. Отделение корней можно проводить графически и аналитически.
Корнями уравнения считаются такие значения переменной, при которых значение самой функции равно нулю. Следовательно, отделение корней сводится к нахождению таких интервалов изменения аргументов функции, в которых сама функция меняет знак.
Что же касается процедуры уточнения корней, то она проводится по единой методике, заключающейся в оценке точности найденных корней (для действительных значений) посредством неравенств
a k < x k < bk ,
ãäå ak è bk — начало и конец интервала, в котором располагается k-й корень x k функции f (x).
Тогда в качестве первого приближенного значения для k-го корня можно принять, например, центр интервала (ak , bk ).
Для решения таких уравнений на ЭВМ особенно удобен метод половинного деления (деления пополам).
Приведенная программа обеспечивает алгоритм этого метода. Решение задач сводится к правильной записи уравнения в подпрограмме и вводе точности вычисления. Программу лучше оформлять как макрос к Excel.
'Нахождение корней методом деления пополам
Sub delon2()
Dim Eps As Double, X As Double, VN As Double, Y As Double Dim Z As Double
Dim XN As Double, XV As Double, YN As Double
88
7. Циклы
Dim flag As Boolean
Dim XV1 As Double, k(1 To 5) As Double flag = False
txt$ = “Корней на заданном интервале нет”
Eps = Val(InputBox(“требуемая точность”, , “0.0000001")) XN = Val(InputBox(“Нижняя граница интервала”, , “0.1")) XV = Val(InputBox(“Верхняя граница интервала”, , “0.1")) h = Val(InputBox(“Укажите шаг поиска корней”, , “0.15")) For i = 1 To 5 'Цикл на поиск 5-òè корней
YN = Уравнение(XN) For X = XN To XV Step h Y = Уравнение(X)
If YN * Y > 0 Then
YN = Y
Else
flag = True: Exit For
End If |
|
Next X |
|
If flag = False Then |
|
MsgBox txt$ |
|
End |
|
End If |
|
If Y <> 0 Then |
|
XN = X - h |
'Делаем шаг назад |
XV1 = X |
'Интервал сузили до ширины шага |
X = Корень(XN, XV1, Eps) |
|
End If |
|
MsgBox (“Ответ: Х(” + Str(i) + “)=” + Format(CSng(X), _ |
|
“ #0.000 ###”)) |
|
XN = XV1 |
'сдвигаем нижнюю границу |
If flag Then txt$ = “Больше корней на заданном интервале нет”
flag = False |
|
Next i |
'На поиск очередного корня |
End Sub
Function Корень(XN As Double, XV As Double, Eps As Double) As Double
Dim Y As Double, YN As Double, X As Double
89
Информатика в задачах, примерах, алгоритмах
Do |
' Начало цикла |
X = XN |
|
Y = Уравнение(X) |
|
YN = Y |
|
X = (XV + XN) / 2 |
|
Y = Уравнение(X) |
|
If YN * Y > 0 Then XN = X Else XV = X |
|
Loop While XV - XN > Eps |
' Конец цикла |
Корень = X |
|
End Function |
|
Function Уравнение(X As Double) As Double
'Запишите решаемое уравнение в форме выражения Бейсик
Уравнение = 2 * (X ^ 2 + 3 * X + 11) ^ (1 / 2) + X ^ 2 + 3 * X - 4 End Function
Задачи
251. Решить уравнение
2−2x + 2− x = 6.
Ответ: –1.
252. Решить уравнение
4x + 3 2x = 10.
Ответ: 1.
253. Решить уравнение
2
x + 5 = x + 2.
Ответ: 4.
254. Решить уравнение
5x 2 − 7x + 2 = (4x − 5)2 4x 2 + x − 5 16x 2 − 25
Ответ: –3.
90
