ВУЗ:
Составители:
Рубрика:
32
т.е. корень не найден, подбор параметра не сработал. Не стоит особо
удивляться этому, ведь это средство не предназначено специально для
решения уравнений. Заметим, что если (см. задачу 1 в разделе 2.2) ме-
нять x на интервале (0; 1) с шагом dx=0.1, то при x=0.7, …,1.0 подбор
параметра сработает, и корень будет найден.
Существуют надѐжные методы численного решения нелинейного
уравнения
0)( xf
, один простой метод из их числа - метод деления
отрезка пополам. Его идея состоит в том, что отрезок, на концах кото-
рого непрерывная функция имеет противоположные знаки, делится по-
полам, а затем выбирается для дальнейшего поиска та его половина, на
концах которой знаки функции различные. Процесс деления продол-
жается до тех пор, пока отрезок
],[
, содержащий корень, не станет
достаточно малым. Представим алгоритм данного метода на VBA в ви-
де функции:
Function DOP(Fch As String, Xch As String, a As Double, _
b As Double, Optional Eps As Double = 0.0001, Optional Iter As _
Integer) As Boolean
' Fch, Xch - имена ячеек с функцией и аргументом,
' a, b - левая и правая границы отрезка, содержащего корень,
' Eps - относительная погрешность корня |X* - X|/max(|a|,|b|)<Eps,
' Iter - число выполненных приближений.
Dim Alpha As Double, Beta As Double, Sfa As Integer
Dim X As Double, D As Double, Mabs As Double
'++++++++++++++++++++++++++++++++++++++++++++++++
Range(Xch) = a
Sfa = Sgn(Range(Fch))
Range(Xch) = b
Bisec = False
If Sfa * Sgn(Range(Fch)) > 0 Then Exit Function
Mabs = IIf(Abs(a) > Abs(b), Abs(a), Abs(b))
If Eps < 0.000000000000005 Then Eps = 0.000000000000005
Alpha = a: Beta = b
Iter = 0
т.е. корень не найден, подбор параметра не сработал. Не стоит особо удивляться этому, ведь это средство не предназначено специально для решения уравнений. Заметим, что если (см. задачу 1 в разделе 2.2) ме- нять x на интервале (0; 1) с шагом dx=0.1, то при x=0.7, …,1.0 подбор параметра сработает, и корень будет найден. Существуют надѐжные методы численного решения нелинейного уравнения f ( x) 0 , один простой метод из их числа - метод деления отрезка пополам. Его идея состоит в том, что отрезок, на концах кото- рого непрерывная функция имеет противоположные знаки, делится по- полам, а затем выбирается для дальнейшего поиска та его половина, на концах которой знаки функции различные. Процесс деления продол- жается до тех пор, пока отрезок [ , ] , содержащий корень, не станет достаточно малым. Представим алгоритм данного метода на VBA в ви- де функции: Function DOP(Fch As String, Xch As String, a As Double, _ b As Double, Optional Eps As Double = 0.0001, Optional Iter As _ Integer) As Boolean ' Fch, Xch - имена ячеек с функцией и аргументом, ' a, b - левая и правая границы отрезка, содержащего корень, ' Eps - относительная погрешность корня |X* - X|/max(|a|,|b|)0 Then Exit Function Mabs = IIf(Abs(a) > Abs(b), Abs(a), Abs(b)) If Eps < 0.000000000000005 Then Eps = 0.000000000000005 Alpha = a: Beta = b Iter = 0 32
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »