Информатика и интегрированные прикладные системы
.pdfприведенном ниже примере мы создаем URLConnection с помощью метода openConnection, вызванного с объектом URL. После этого мы используем созданный объект для получения содержимого и свойств документа.
import java.net.*; import java.io.*; class localURL {
public static void main(String args[]) throws Exception { int c;
URL hp = new URL("http", "127.0.0.1", 80, "/"); URLConnection hpCon = hp.openConnection(); System.out.println("Date: " + hpCon.getDate()); System.out.println("Type: " + hpCon.getContentType()); System.out.println("Exp: " + hpCon.getExpiration()); System.out.println( "Last M: " + hpCon.getLastModified()); System.out.println("Length: " + hpCon.getContentLength()); if (hpCon.getContentLength() > 0) { System.out.println("=== Content ===");
InputStream input = hpCon.getInputStream(); int i=hpCon.getContentLength();
while (((c = input. read()) != -1) && (--i > 0)) { System.out.print((char) c);
}
181
input.close();
}
else {
System.out.println("No Content Available");
}
} }
Эта программа устанавливает HTTP-соединение с локальным узлом по порту 80 (у
вас на машине должен быть установлен Web-сервер) и запрашивает документ по умолчанию, обычно это - index.html. После этого программа выводит значения заголовка,
запрашивает и выводит содержимое документа.
182
РАЗДЕЛ III. ЧИСЛЕННЫЕ МЕТОДЫ
1.3.1. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
Пусть задана непрерывная функция f x и требуется найти корни уравнения
f (x) 0 |
|
(1.3.1.1) |
|
на всей числовой оси или на некотором интервале a x b . |
|
Всякое значение x* (a,b) , удовлетворяющее условию |
f x* 0 , называется |
корнем уравнения (1), а способ нахождения этого значения x * и есть решение уравнения
(1.3.1.1).
1.3.1.1. Метод бисекции
Математическая модель:
1. f (a) f (b) 0 ;
2. c a b ;
2
3.Если f (a) f (c) 0 , то b c
Если f (b) f (c) 0 , то a c ;
4.Критерий окончания счета:
f (c)
a b
183
1.3.1.2. Метод хорд
Математическая модель: |
|
|
|
|
|||
1. |
Если f (a) f (b) 0 , то на отрезке a;b существует корень; |
||||||
2. |
2.1. Если |
f (a) 0 , то x0 a и xn 1 xn |
b xn |
f (xn ) , n 0,1,... |
|||
f (b) |
|
f (xn ) |
|||||
|
|
|
|
|
|
||
|
2.2. Если |
f (a) 0 , то x0 b и xn 1 xn |
|
a xn |
f (xn ) , n 0,1,... |
||
|
|
f (a) |
|
f (xn ) |
|||
|
|
|
|
|
|
||
3. Критерий окончания счета:
|
|
f (x |
) |
|
|
|
|
|
|
|
|||||
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xn 1 xn |
|
|
|||
|
|
|
|||||
|
|
|
|
|
|
1.3.1.3. Метод простой итерации |
|
Математическая модель: |
|
||||||
Дано нелинейное уравнение |
|
||||||
|
|
|
|
|
|
f (x) 0 |
|
|
|
|
(1.3.1.3.1) |
|
|||
Корень отделен x* [a;b]. Требуется уточнить корень с точностью ε. |
|
||||||
Уравнение (1) преобразуем к эквивалентному виду |
|
||||||
|
|
|
|
|
|
x=φ(x) |
(1.3.1.3.2) |
Выберем начальное приближение x0 [a;b]. |
|
||||||
Вычислим новые приближения: |
|
||||||
x1=φ(x0)
x2=φ(x1)
(1.3.1.3.3)
………..
184
xi=φ(xi-1) ,
i=1,2,… где i − номер итерации.
Последовательное вычисление значений xi по формуле (3) называется итерационным процессом метода простых итераций, а сама формула - формулой
итерационного процесса метода. |
|
|
|
|
|
|
||
Если |
lim x x* , то итерационный процесс сходящийся. |
|
||||||
i |
i |
|
|
|
|
|
|
|
Условие сходимости |
|
|
|
|
|
|
||
|
|
' |
|
1, |
x [a,b] |
(1.3.1.3.4) |
||
|
|
|
||||||
|
|
( x) |
|
|
|
|
|
|
Точное решение x* получить невозможно, так как требуется бесконечный |
||||||||
итерационный процесс. |
|
|
|
|
|
|
||
Итерационный процесс продолжается при достижении условия |
|
|||||||
|
|
x |
|
x |
|
|
, |
(1.3.1.3.5) |
|
|
|
|
|||||
|
|
|
i |
i |
1 |
|
|
|
где ε - заданная точность; i - номер последней итерации.
Условие завершения итерационного процесса (1.3.1.3.5) обеспечивает близость значения xi к точному решению:
x* xi
Рассмотрим геометрическую иллюстрацию метода простых итераций.Уравнение (2)
представим на графике в виде двух функций: y1 = x и y2= φ(x).
Возможные случаи взаимного расположения графиков функций, и соответственно,
видов итерационного процесса показаны на рис. 1 – 4.
Y |
y1=x |
|
y2=φ(x)
φ(x0)
φ(x1)
X
|
|
x* x2 |
|
|
a |
x1 |
b=x0 |
||
Итерационный процесс монотонно сходится из любой точки [a,b]
185
Рисунок 1.3.1.3.1. Итерационный процесс для случая 0< x' <1 |
x [a,b]. |
y1
Y
|
|
x2 x* |
|
|
|
a=x0 |
x1 |
b |
|||
Итерационный процесс колебательно (около корня x*) сходится из любой точки [a,b]
Итерационный процесс y2
монотонно расходится для любого x0 [a,b]
Х
Рисунок 1.3.1.3.2. Итерационный процесс для случая -1< x' |
<1 |
x [a,b]. |
Y |
y2=φ(x) |
y1=x |
|
|
φ(x0) |
|
|
|
|
|
|
φ(x2) |
|
|
|
Х |
|
|
|
x* |
|
|
|
|
|
|
|
|
|
|
|
|
a x2 x1 x0 |
b |
|
|
|||
|
|
|
|
|
||
Рисунок 1.3.1.3.3. Итерационный процесс для случая x' >1 |
x [a,b]. |
|||||
186
|
y2 |
Y |
y1 |
φ(x2) |
|
φ(x0) 
φ(x1)
φ(x3)
a |
x2 x0 x* x1 |
x3 |
|
|
Итерационный процесс колебательно (относительно корня x*) расходится для любого x0 [a,b]
Х
b
Рисунок 1.3.1.3.4. Итерационный процесс для случая x' |
- 1 |
x [a,b]. |
Из анализа графиков следует, что скорость сходимости растет при уменьшении
значения 'x
Математическая модель:
1.Если (x) 0 , то x0 b ,
если (x) 0 , то x0 a ;
2.Уравнение f (x) 0 преобразуем к виду:
xn 1 (xn ) или
xn 1 xn c f (xn) , где xn c f (xn) (xn) ,
3. Условие сходимости метода простой итерации:
(x0 ) 1
4. Критерий окончания счета:
f (xn 1)
x xn 1 n
187
1.3.1.4. Метод Ньютона (метод касательных)
Математическая модель:
Дано нелинейное уравнение (1.3.1.4.1)
f (x) 0
(1.3.1.4.1)
Корень отделен x* [a;b].
Метод основан на стратегии постепенного уточнения корня. Формулу уточнения можно получить из геометрической иллюстрации идеи метода.
f |
f(x) |
|
|
|
|
|
A |
|
|
|
|
|
|
x* |
|
|
|
|
|
|
|
|
* |
C |
B |
|
|
x |
|
|
|
|
||||||
0 a |
x1 |
x0 |
b |
|||||
|
||||||||
Рисунок 1.3.1.4.1. Геометрическая иллюстрация метода Ньютона.
На отрезке существования корня выбирается начальное приближение x0. К кривой f(x) в точке А с координатами (x0, f(x0)) проводится касательная. Абсцисса x1 точки пересечения этой касательной с осью ОХ является новым приближением корня.
Из рисунка следует, что x1 = x0 − CB
|
AB |
|
Но tg ACB f '(x0 ), |
AB f (x0 ) . |
||||
Из ∆ABC: CD= |
|
|
. |
|||||
tg ACB |
||||||||
|
|
|
|
|
|
|||
Следовательно, |
x1 x0 |
|
|
f (x0 ) |
|
|
||
|
f '(x0 ) |
|
||||||
|
|
|
|
|
|
|||
Аналогично, для i-го приближения можно записать формулу итерационного процесса метода Ньютона:
188
x x |
i 1 |
f (xi 1 ) |
,i 1,2,... |
, где x0 |
|
[a;b]. |
|
i |
|
f '(xi 1 ) |
|
|
|||
|
|
|
|
|
|
|
|
(1.3.1.4.2)
Условие окончания расчета: ,
(1.3.1.4.3)
где xi 1 xi f '(xi 1 ) −корректирующее приращение или поправка.
Условие сходимости итерационного процесса:
f (x) f ''(x) f (x) 2 x [a, b]
(1.3.1.4.4)
Если на отрезке существования корня знаки f '( x) и f ''( x) не изменяются, то начальное приближение, обеспечивающее сходимость, нужно выбрать из условия
f (x0 ) f ''(x0 ) 0 , x0 [a;b].
(1.3.1.4.
5)
т.е. в точке начального приближения знаки функций и ее второй производной должны совпадать.
f
f(x
a |
x* |
b x |
|
||
0 |
|
x1 x0 |
189
Рисунок 1.3.1.4.2. Геометрическая иллюстрация выбора начального приближения:
график f(x) вогнутый, f ''(x) 0 , тогда x0=b, т.к. f(b)>0.
Если же выбрать x0=a, то итерационный процесс будет сходиться медленнее или даже расходиться (см. касательную для x0=a).
f
f(x)
a |
b |
x |
0 |
x* |
|
Рисунок 1.3.1.4.3. Геометрическая иллюстрация выбора начального приближения:
график f(x) выпуклый, f ’’(x)<0 , тогда x0 =a, т.к. f(a)<0.
Метод Ньютона в отличие от ранее рассмотренных методов используют свойства функции в виде значения производной, что значительно ускоряет итерационный процесс.
При этом, чем больше значение модуля производной в окрестности корня (чем круче график функции), тем быстрее сходимость.
Математическая модель.
1.За начальное приближение принимается такое значение x0 a;b ,
для которого выполняется условие Фурье: f (x0) f (x0) 0 ;
2. xn 1 xn |
f (xn ) |
, |
|
||
|
f (xn ) |
|
3. Критерий окончания счета:
190
