
- •Методичні рекомендації до вивчення дисціпліни "Комп’ютерне моделювання електронних схем, конструкцій та технологій електронних апаратів"
- •1.Загальні питання
- •2.Визначення полюсів схемних функцій
- •2.1.Метод дихотомії
- •2.2.Метод хорд
- •2.3.Метод дотичних
- •2.4.Пошук комплексних коренів нелінійних рівнянь
- •3.Визначення коефіціентів чутливості
- •3.1.Розрахунок перших частинних похідних функції
- •3.1.1.Схема 2т чисельного диференціювання
- •3.1.2.Схема 3т чисельного диференціювання
- •3.2.Розрахунок власних частинних похідних другого порядку
- •3.3.Розрахунок взаємних похідних другого порядку
- •4.Визначення міри відповідності характеристик реа
- •4.1.Метод прямокутників
- •4.2.Метод трапецій
- •4.3.Метод Симпсона
- •5.Модедювання радіоелектронних апаратів системами рівнянь
- •5.1.Метод Гауса
- •5.1.1.Розв’язання систем алгебраїчних рівнянь методом Гауса
- •5.1.2.Обчислення визначника матриці методом Гауса
- •5.1.3.Обернення матриці методом Гауса
- •5.2.Метод Жордана
- •5.2.1.Обернення матриці методом Жордана
- •5.3.Метод lu-факторизації
- •5.4.Метод опорного елементу
- •6.Ітераційні методи розвяЗувАння систем лінійних рівнянь
- •6.1.Метод Якобі
- •6.2.Метод Гауса-Зейделя
- •6.3.Метод послідовної верхньої релаксації
- •7.Моделюванні статичного режиму радіоелектронних засобів
- •7.1.Метод простої ітерації
- •7.2.Метод Ньютона
- •2.3 Метод продовження параметру
- •8.Інтерполяція та наближення кривими
- •8.1.Метод невизначених коефіціентів
- •8.2.Регресійний аналіз. Метод найменших квадратів
- •8.2.1.Лінійна регресія
- •8.2.2.Квадратична регресія
- •9.Розв’язання звичайних диференційних рівнянь
- •9.1.Постановка задачі
- •9.2.Метод Ейлера
- •9.3.Метод Ейлера-Коші
- •9.4.Метод Рунге-Кутта
- •Перелік літератури
2.2.Метод хорд
Метод хорд ґрунтується на лінійній інтерполяції досліджувальної функції, для якої легко розрахувати її точку перетину з віссю ОХ. Нехай корінь функції знаходиться на інтервалі [a, b].
Рівняння прямої, що проходить через точки функції на межах інтервала
.
Або враховуючи, що для кореня у=0
.
Таким чином, наближення кореня – точка перетину прямої з віссю - може бути знайдено за формулою
.
Отримана точка знаходиться в інтервалі пошуку кореня, є його наближенням до кореня рівняня і заміняє одну із меж інтервалу. В залеж-ності від характеру функції наближення реалізується лише з одного боку (лівого або правого). Використавши цю процедуру повторно, можна уточнити значення кореня до потрібної величини, порівнюючи суміжні значення аргументу.
Алгоритм пошуку кореня нелінійного рівняння за методом хорд грунтується на виконанні наступних кроків:
покласти k=1;
розрахувати поточне значення аргумента за формулою
с(k)= а-(b-a)/[f(b)-f(a)]*f(a);
якщо f(a)f(с)>0, то покласти a=с, інакше b=с;
якщо с(k)-с(k-1)>, то покласти k=k+1 та перейти до п.2;
вивести результат та закінчити розрахунки.
Задача 2.2. Методом хорд знайти корінь функції f(х)= х2-1 на інтервалі [0,3] для = 0,1.
Розвязок. Значення f(a)f(b)= (-1)8<0, що свідчить про існування кореня на інтервалі [0, 3]. Результати розвязання задачі відповідно до описаного алгоритму методу хорд наведені в таблиці.
k |
a |
b |
f(a) |
f(b) |
с |
f(c) |
f(a) f(c) |
відкинути |
1 |
0 |
3 |
-1 |
8 |
1/3 |
-0.89 |
>0 |
a |
2 |
1/3 |
3 |
-0.89 |
8 |
0.6 |
-0.64 |
>0 |
a |
3 |
0.6 |
3 |
-0.64 |
8 |
0.78 |
-0.39 |
>0 |
a |
4 |
0.78 |
3 |
-0.39 |
8 |
0.88 |
-0.22 |
>0 |
a |
5 |
0.88 |
3 |
-0.22 |
8 |
0.94 |
-0.12 |
>0 |
a |
Таким чином, за 5 ітерацій знайдено чергове наближення до кореня Хм= 0.94 функції, при цьому значення функції f = – 0.12.
Наведена нижче програма Root_Hord реалізує метод хорд для пошуку кореня функції f(х)= х2-1 на інтервалі [0, 3] з точністю = 0,001.
Program Root_Hord; { метод хорд }
Uses CRT;
const e= 0.001; { критерiй зупину }
k: integer= 0; { номер iтерацii }
ko:integer=0; { кiлькiсть розрахункiв функцii }
a:real=0; { лiва межа iнтервалу з коренем }
b:real=3; { права межа iнтервалу з коренем }
Var x, xo, { поточне та попереднс значення кореня }
fa, fb, fx, { значення функцii у вiдповiдних точках}
dx: real; { величина уточнення кореня }
Function F(x:real):real;
Begin
F:=x*x-1
End;
BEGin
ClrScr;
writeln(' Пошук кореня нелiнiйного рiвняння методом хорд');
writeln(' Значення критерiю зупину: ',e:5:3);
xo:=a;
fa:=f(a); fb:=f(b);
writeln(' k a b fa fb x fx dx');
write(k:2, a:9:4,b:9:4,fa:11:6, fb:11:6);
repeat
x:=a-(b-a)/(fb-fa)*fa;
fx:=f(x);
dx:=abs(xo-x); xo:=x;
writeln(x:9:4,fx:11:6, dx:9:4);
if fa*fx>0 then
begin a:=x; fa:=fx
end else
begin b:=x; fb:=fx
end;
inc(k);
write(k:2, a:9:4,b:9:4,fa:11:6, fb:11:6);
until dx<e;
writeln; writeln;
writeln('Xm=',x:6:4,' f(Xm)=',f(x):10:6);
write('Натисни "Enter": '); readln
END.
Результат виконання програми Root_Hord:
Пошук кореня нелiнiйного рiвняння методом хорд
Значення критерiю зупину: 0.001
k a b fa fb x fx dx
0 0.0000 3.0000 -1.000000 8.000000 0.3333 -0.888889 0.3333
1 0.3333 3.0000 -0.888889 8.000000 0.6000 -0.640000 0.2667
2 0.6000 3.0000 -0.640000 8.000000 0.7778 -0.395062 0.1778
3 0.7778 3.0000 -0.395062 8.000000 0.8824 -0.221453 0.1046
4 0.8824 3.0000 -0.221453 8.000000 0.9394 -0.117539 0.0570
5 0.9394 3.0000 -0.117539 8.000000 0.9692 -0.060592 0.0298
6 0.9692 3.0000 -0.060592 8.000000 0.9845 -0.030767 0.0153
7 0.9845 3.0000 -0.030767 8.000000 0.9922 -0.015504 0.0077
8 0.9922 3.0000 -0.015504 8.000000 0.9961 -0.007782 0.0039
9 0.9961 3.0000 -0.007782 8.000000 0.9980 -0.003899 0.0019
10 0.9980 3.0000 -0.003899 8.000000 0.9990 -0.001951 0.0010
11 0.9990 3.0000 -0.001951 8.000000
Розрахункiв функцii 13. Xm=0.9990 f(Xm)= -0.001951
Натисни "Enter":
Таким чином, корінь Xm=0.999
функції з точністю 0.001
знайдено за 11 ітерацій, що потребує
13 розрахунків функції. Для поточної
задачі метод забезпечив
лінійний збіг до кореня з коефіцієнтом
.