Метод хорд

Тип работы:
Лабораторная работа
Предмет:
Физико-математические науки


Узнать стоимость

Детальная информация о работе

Выдержка из работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИИ

«УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ»

Отчет по лабораторной работе № 2

«Метод хорд»

вариант 18

Выполнила: студентка гр. ЭМА-13

Савастьянова А. Мя

Проверил: Миронова Л. И.

Екатеринбург

2014

Метод хорд

Алгоритм

Вводим левый, правый концы — a, b, точность — e.

F1=f (a)

F2=f (b)

хорда алгоритм корень уравнение

Счетчик приближений (итераций) N=0.

Какой конец хорды неподвижен?

Если F1*F3 > 0, то неподвижен левый — а.

, p =2.

Иначе F1*F3 < 0, то неподвижен правый — b.

, p= 1.

F4=f ()

Если p = 1, то ,

а если p = 2, то.

Печатаем N,, F4, F5.

N = N+1.

.

Если, то печатаем — корень. Конец задачи.

Иначе, переходим на ш. 7.

Конец задачи.

Контрольный пример к алгоритму метода хорд:

Найти корень уравнения находящийся в промежутке [1; 1,5] с точностью 0,002.

Решение.

Найдем вторую производную заданной функции.

Определим, какой конец интервала неподвижен. Для этого определим знак f (а) и f''©. Найдем значения «а» и «с».

По условию задачи, а=1 и b=1,5.

Тогда. Подставим значения «а» и «b» в эту формулу.

Получим с=0,25.

Теперь получим f (1)=1−0,2−0,2−1,2=-0,6< 0и f (0,25)=6*0,25−0,4>0.

Тогда знак произведения f (1)*f (0,25)<0. Значит, неподвижен конец хорды b, и для расчетов надо воспользоваться формулой 4.

После выполнения расчетов контрольного примера получим результаты, помещенные в таблицу.

N

0

1

-0. 6

0. 15

1

1. 15

-0. 173

0. 040

2

1. 190

-0. 036

0. 008

3

1. 198

0. 072

0. 001

4

1. 199

Уточненное значение корня заданного уравнения на интервале [1; 1,5] с точностью 0,002 х=1,199.

Код программы контрольного примера:

programlab3;

usescrt;

vara, b, c, x0, x1, F1, F2, F3, F4, F5, e: real;

N, p: integer;

begin

writeln ('f: =x3−0. 2*x2−0. 2*x-1. 2');

writeln ('Точность 0. 002');

writeln ('Введите левый конец отрезка: ');

readln (a);

writeln ('Введите правый конец отрезка: ');

readln (b);

writeln ('N — счётчик количества итераций');

e: =0. 002;

F1: =a*a*a-0. 2*a*a-0. 2*a-1. 2;

F2: =b*b*b-0. 2*b*b-0. 2*b-1. 2;

c: =(a+b)/2;

F3: =6*c-0. 4;

N: =0;

ifF1*F3>0 then

begin

x0: =b;

p: =2;

end

else

begin

x0: =a;

p: =1;

end;

repeat

F4: =x0*x0*x0−0. 2*x0*x0−0. 2*x0−1. 2;

ifp=1 then F5: =(b-x0)*F4/(F2-F4);

ifp=2 then F5: =(x0-b)*F4/(F4-F2);

writeln ('N=', N,', x1=', x0,', x0=', x1,', F4=', F4,', F5=', F5);

N: =N+1;

x0: =x0-F5;

x1: =x0+F5

untilabs (x0-x1)< e;

end.

Вариант № 18

Найти корень уравнения с точностью 0,002.

Код программы для данного уравнения:

uses crt;

var a, b, c, x0, x1, F1, F2, F3, F4, F5, e: real;

N, p: integer;

begin

writeln ('f: =x4−18*x2+6');

writeln ('Точность 0. 002');

writeln ('Введите левый конец отрезка: ');

readln (a);

writeln ('Введите правый конец отрезка: ');

readln (b);

writeln ('N — счётчик количества итераций');

e: =0. 002;

F1: =a*a*a*a-18*a*a+6;

F2: =b*b*b*b-18*b*b+6;

c: =(a+b)/2;

F3: =12*c*c-36;

N: =0;

if F1*F3>0 then

begin

x0: =b;

p: =2;

end

else

begin

x0: =a;

p: =1;

end;

repeat

F4: =x0*x0*x0*x0−18*x0*x0+6;

if p=1 then F5: =(b-x0)*F4/(F2-F4);

if p=2 then F5: =(x0-b)*F4/(F4-F2);

writeln ('N=', N,', x1=', x0,', x0=', x1,', F4=', F4,', F5=', F5);

N: =N+1;

x0: =x0-F5;

x1: =x0+F5

until abs (x0-x1)< e;

readln;

end.

ПоказатьСвернуть
Заполнить форму текущей работой