- •Методичні рекомендації до вивчення дисціпліни "Комп’ютерне моделювання електронних схем, конструкцій та технологій електронних апаратів"
- •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.Визначення полюсів схемних функцій
Схемні функції - нелінійні рівняння комплексної частоти р=j. Загалом нелінійні рівняння задаються у вигляді f(x)= 0, де x а, b. Нелінійні рівняння поділяють на:
алгебраїчні (поліноми деякої змінної);
трансцендентні, що використовують тригонометричні (sinx), логарифмічні (logx, lnx), оберненотригонометричні (arсsinx) та інші нелінійні функції.
Поліноми можна привести до канонічного вигляду (канонічної форми):
P = anxn + an-1xn-1 + … + a1x + a0.
Два рівняння f(x) і g(x) називаються еквівалентними, якщо збігається множина їхніх розв’язків.
Процес пошуку коренів нелінійного рівняння часто поділяється на етапи відділення та уточнення коренів.
Якщо на межах інтервалу [a, b] знаки функції різні, то на ньому може бути хоча б один корінь (або непарна їх кількість). Етап відділення кореня реалізується, як правило, методом пошуку з постійним кроком (великим відносно похибки пошуку).
Для уточнення коренів часто використовуються методи поразрядного уточнення, дихотомії (половинного ділення), січних, дотичних (Ньютона), простої ітерації тощо.
Обчислювальний процес пошуку коренів нелінійних рівнянь є ітераційним. Він може збігатися, не збігатися або розбігатися. Якщо модуль прирощення аргументів на кожній наступній ітерації зменшується, то обчислювальний процес збігається (сходиться). Процес збіжності може йти із різною швидкістю, лінійно або квадратично. Область збіжності - сукупність точок багатовимірного простору, де розрахунковий процес збігається до розв’язку.
2.1.Метод дихотомії
Метод дихотомії (половинного ділення, ділення навпіл) – один із найпростіших та найнадійніших методів уточнення кореня нелінійного рівняння. Нехай корінь функції знаходиться на інтервалі [a,b], тобто f(a)f(b)<0. На кожній ітерації обчислювального процесу ліва та права межі інтервала зсуваються одна до одної, ширина інтервалу та поточна похибка пошуку кореня зменшуються вдвічі. Розрахунки закінчуються, коли
Алгоритм пошуку кореня нелінійного рівняння за методом дихотомії грунтується на виконанні наступних кроків:
розрахувати середину інтервалу c=(a+b)/2;
якщо f(a)f(с)>0, то покласти a=с, інакше b=с;
якщо (b-a)/2 > , то перейти на п.1;
вивести кінцевий результат та закінчити розрахунки.
Задача 2.1. Методом дихотомії знайти з точністю = 0,1 корінь функції f(х)= х2-1, що знаходиться на інтервалі [0, 3].
Розвязок. Значення добутку f(0)f(3)=(-1)8<0 свідчить про існування кореня на інтервалі [0, 3]. Результати розвязання задачі відповідно до описаного алгоритму дихотомії наведені в таблиці:
it |
a |
b |
(b-a/2 |
fa |
fb |
c |
fc |
fafc |
Відки-нути |
1 |
0 |
3 |
1.5 |
-1 |
8 |
1.5 |
1.25 |
<0 |
b |
2 |
0 |
1.5 |
0.75 |
-1 |
1.25 |
0.75 |
-0.4375 |
>0 |
a |
3 |
0.75 |
1.5 |
0.375 |
-0.4375 |
1.25 |
1.125 |
0.2657 |
<0 |
b |
4 |
0.75 |
1.125 |
0.188 |
-0.4375 |
0.2657 |
0.938 |
-0.12 |
>0 |
a |
5 |
0.938 |
1.125 |
0.094 |
|
|
1.032 |
|
|
|
За п’ять ітерацій початковий інтервал шириною 3 скорочено у 25=32 разів, задана точність досягнута – корінь рівняння: х5= 1.032+-0.094.
Програма Root_PolDil реалізує пошук кореня функції f(х)= х2-1 на інтервалі [0, 3] методом дихотомії з точністю = 0,001:
Program Root_PolDil;{пошук кореня нелін. рівняння }
Uses CRT; {методом дихотомії }
const e= 0.001; {точнiсть пошуку кореня }
ko: integer= 0; {кiлькiсть розрахункiв функцii }
k : integer= 0; {номер iтерацii }
a: real= 0; {лiва межа iнтервала }
b: real= 3; {права межа iнтервала }
Var c, {середня точка iнтервала }
fa,fb, fc: real; {значення функцii в точках a, b, c }
Function F(x:real):real;
Begin inc(ko); F:=x*x-1 End;
BEGin
ClrScr;
a:=0; b:=3;
fa:=f(a); fb:=f(b);
writeln(' k a b (b-a)/2 fa fb c fc');
write(k:2, a:9:4,b:9:4,(b-a)/2:9:4,fa:12:7, fb:12:7);
repeat
c:=(a+b)/2;
fc:=f(c);
writeln(c:9:4,fc:12:7);
if fa*fc>0 then
begin a:=c; fa:=fc
end else
begin b:=c; fb:=fc
end;
inc(k);
write(k:2, a:9:4,b:9:4,(b-a)/2:9:4,fa:12:7, fb:12:7);
until (b-a)/2<e;
writeln; writeln;
write('Розрахункiв функцii ',ko);
writeln('Xm=',c:6:4,'+-',(b-a)/2:6:4,' f(Xm)=',fc:10:7);
write('Натисни "Enter": '); readln
END.
Результати виконання програми Root_PolDil:
k a b b-a)/2 fa fb c fc
0 0.0000 3.0000 1.5000 -1.0000000 8.0000000 1.5000 1.2500000
1 0.0000 1.5000 0.7500 -1.0000000 1.2500000 0.7500 -0.4375000
2 0.7500 1.5000 0.3750 -0.4375000 1.2500000 1.1250 0.2656250
3 0.7500 1.1250 0.1875 -0.4375000 0.2656250 0.9375 -0.1210938
4 0.9375 1.1250 0.0938 -0.1210938 0.2656250 1.0313 0.0634766
5 0.9375 1.0313 0.0469 -0.1210938 0.0634766 0.9844 -0.0310059
6 0.9844 1.0313 0.0234 -0.0310059 0.0634766 1.0078 0.0156860
7 0.9844 1.0078 0.0117 -0.0310059 0.0156860 0.9961 -0.0077972
8 0.9961 1.0078 0.0059 -0.0077972 0.0156860 1.0020 0.0039101
9 0.9961 1.0020 0.0029 -0.0077972 0.0039101 0.9990 -0.0019522
10 0.9990 1.0020 0.0015 -0.0019522 0.0039101 1.0005 0.0009768
11 0.9990 1.0005 0.0007 -0.0019522 0.0009768
Розрахункiв функцii 13. Xm=0.9998+-0.0007. f(Xm)=-0.0004882
Натисни "Enter":
Таким чином, за 11 ітерацій знайдено корінь Xm=0.9998 функції, для чого використано 13 розрахунків функції.