Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Метод хорд





Метод хорд [7] заключается в замене кривой y = f (x) отрезком прямой, проходящей через точки (a, f (a)) и (b, f (b)) (см. рис. 2.6). Абсцисса точки пересечения прямой с осью OX принимается за очередное приближение.

Чтобы получить расчетную формулу метода хорд, запишем уравнение прямой, проходящей через точки (a, f (a)) и (b, f (b)) и, приравнивая y нулю, найдем x:

.

 


Рис.2.6. Метод хорд

 

Алгоритм метода хорд:

1) Пусть k = 0;

2) Вычислим следующий номер итерации: k = k + 1; Найдем очередное k -ое приближение по формуле: xk = a – f (a)(ba)/(f (b) – f (a)); Вычислим f (xk).

3) Если f (xk)= 0 (корень найден), то переходим к 5).

Если f (xk) f (b) > 0, то b = xk, иначе a = xk.

4) Если | xkxk -1| > ε, то переходим к шагу 2);

5) Выводим значение корня xk.

6) Конец.

 

Замечание. Действия третьего пункта аналогичны действиям метода половинного деления. Однако в методе хорд на каждом шаге может сдвигаться один и тот же конец отрезка (правый или левый), если график функции в окрестности корня выпуклый вверх (рис. 2.6, a)) или вогнутый вниз (рис. 2.6, b)). Поэтому в критерии сходимости используется разность соседних приближений.

Пример 2.6. Применим метод хорд к уравнению sin 5 x + x 2 – 1 = 0 и отрезку [0,2; 0,3] для определения корня с точностью до ε = 0,001.

Решение. Проведем расчеты в программе Excel:

1) В ячейки A1:H1 запишем заголовки столбцов как в табл. 2.6;

2) В ячейку B3 запишем формулу =ЕСЛИ(C2*E2<0;B2;D2) и затем ячейку B3 протянем маркером заполнения до ячейки B10;

3) В ячейку C2 запишем формулу =SIN(5*B2)+B2^2-1 и затем ячейку C2 протянем маркером заполнения до ячейки C10;

4) В ячейку D2 запишем формулу =B2-C2*(F2-B2)/(G2-C2) и затем ячейку D2 протянем маркером заполнения до ячейки D10;

5) В ячейку E2 запишем формулу =SIN(5*D2)+D2^2-1 и затем ячейку E2 протянем маркером заполнения до ячейки E10;

6) В ячейку F3 запишем формулу =ЕСЛИ(C2*E2<0;D2;F2) и затем ячейку F3 протянем маркером заполнения до ячейки F10;

7) В ячейку G2 запишем формулу =SIN(5*F2)+F2^2-1 и затем ячейку G2 протянем маркером заполнения до ячейки G10;

8) В ячейку H2 запишем формулу =ABS(F2-B2) и затем ячейку H2 протянем маркером заполнения до ячейки H10;

В таблице 2.8 приведены результаты. Необходимая точность достигается на шаге k = 4.

Таблица 2.8

  A B C D E F G H
  k a f(a) x f(x) b f(b) |b-a|
    0,2 -0,11853 0,25753165 0,026506 0,3 0,0874949 0,1
    0,2 -0,11853 0,24701739 0,005194 0,25753165 0,026506 0,01051
    0,2 -0,11853 0,24504339 0,000926 0,24701739 0,0051944 0,00197
    0,2 -0,11853 0,24469436 0,000162 0,2450434 0,0009256 0,00035

 

Решение в программе Mathcad:

 

 

Как видим, результаты расчетов согласуются с предыдущими ответами.

Приведем программу, которая реализует метод хорд на языке C ++:

 

#include <iostream.h>

#include <math.h>

double f(double x);

typedef double (*PF)(double);

double hord(PF f,double a, double b,double eps, int Kmax);

int main(){

double a, b, x, eps;PF pf; int Kmax;

cout << "\n a = "; cin >> a;

cout << "\n b = "; cin >> b;

cout << "\n eps = "; cin >> eps;

cout << "\n Kmax = "; cin >> Kmax;

pf = f;

x = hord(pf,a,b,eps, Kmax); cout << "\n x = " << x;

cout << "\n Press any key & Enter "; cin >> a;

return 0;

}

double f(double x){

double r;

r = sin(5*x)+x*x-1;

return r;

}

double hord(PF f, double a, double b,double eps,int Kmax){

double xk, xk1, xerr; int k = 0;

xk = a;

do{ k = k + 1; if(k > Kmax)break;

xk1 = a - f(a)*(b - a)/(f(b) - f(a));

if (f(xk1) == 0) break;

xerr = fabs(xk1 - xk); xk = xk1;

if (f(xk1)*f(b) > 0) b = xk1;

else a = xk1;

}while (xerr > eps);

return xk1;

}

 

Результат расчета для примера 2.6:

a = 0.2

b = 0.3

eps = 0.0001

Kmax = 100

x = 0.244633

Press any key & Enter

 

Как видим, результат совпадает с предыдущими расчетами.







Дата добавления: 2015-04-16; просмотров: 706. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия