Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
13.03.2016
Размер:
150.53 Кб
Скачать

НЕКОТОРЫЕ АЛГОРИТМЫ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ

лекция №7

Табулирование функции одной переменной

ТАБЛИЦА ФУНКЦИИ

i

X

Y

1

0.550

5.456749

2

0.551

4.380586

3

0.552

3.450684

4

0.553

2.456783

 

---

---

5

0.554

1.356709

Составить алгоритм и программу вычисления

таблицы значений функции f(x) для N значений

аргумента X, равномерно распределенных на отрезке

[A,B].

Состав данных

начало

 

 

 

 

 

ввод A,B,N

Program tabulirovanie;

 

Var N,i:integer; A,B,x,y,h:real;

 

 

 

h:=(B-A)/(N-1)

begin

 

 

 

 

x:=A

writeln(´input A,B,N´);

 

readln(A,B,N);

 

 

 

i:=1

h := (B-A)/(N-1);

 

 

x := A;

 

 

 

 

 

 

 

 

 

i N

writeln(´

i

x

y´);

 

+

for i:=1 to N do

 

 

 

y:=f(x)

begin

 

 

 

 

вывод i,x,y

y:=f(x) {у каждого своя формула}

writeln(´

´,i,´

´,x:5:2, ´

´,y:7:2);

 

x:=x+h

x:=x+h;

 

 

 

 

 

end;

 

 

 

 

i:=i+1

readln;

 

 

 

 

 

end.

 

 

 

 

конец

 

 

 

 

 

Пример использования таблицы функции. Отделение корней уравнения с помощью построения таблиц и графиков.

х6- 85х4+96х3+1027х2- 96х - 945 = 0

xy

-11

525009

-10

157715

-9

-12393

-8

-69105

-7

-68971

-6

-47421

-5

-24165

-4

-7873

-3

-135

-2

1299

-1

-1

0-945

1-3

22435

34419

43519

5-1375

6-7533

7 -5145

826639

600000

500000

400000

300000

200000

100000

0

-100000

Приближенное решение уравнения на отрезке

Известно, что уравнение

F(x)=0 (*)

на отрезке [A,B] имеет ровно один корень.

Требуется найти приближенное значение корня с точностью :

|x*-xпр|< ,

где x* - точное значение корня, xпр – приближенное значение корня.

Приближенное решение уравнения на отрезке

y=F(x)

A

x*

B

x

 

 

 

 

 

 

 

 

 

Если уравнение (*) имеет на отрезке [A,B] ровно один корень, то F(A)*F(B) 0.

Метод деления отрезка пополам (дихотомии)

y=F(x)

A

x=(a+b)/2

x*

B

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x2

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если F(x)*F(B) 0, то x* [x,B] корень надо искать на правой половине отрезка: A=x;

иначе x* [A,x] корень надо искать на левой половине отрезка: B=x.

Далее деление пополам нового отрезка.

Метод деления отрезка пополам (дихотомии)

i-ая итерация (цикл): вычисление xi - середины

i-го отрезка и выбор его левой или правой половины.

{xi} x* при i .

Условие продолжения цикла: B-A> .

Метод деления отрезка пополам (дихотомии)

начало ввод A,B,

x:=(A+B)/2

-

 

 

 

 

+

 

 

F(x)*F(B) 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B:=x

 

 

 

 

 

A:=x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B-A<

+

вывод x

конец

Алгоритм для идеального случая: на [A,B] ровно один корень.

Более надежный алгоритм учитывает ограничение на число итераций: если число итераций больше некоторого предельного значения, то цикл завершается с выводом сообщения о некорректной постановке задачи.