Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика и интегрированные прикладные системы

.pdf
Скачиваний:
0
Добавлен:
24.11.2025
Размер:
10.46 Mб
Скачать

приведенном ниже примере мы создаем 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

f (xi 1 )

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