logo
Пос_бник АМО

Практичне заняття 6. Розв’язування нелінійних рівнянь у системі matlab

MATLAB-програма складена для дослідження областей збіжності до розв’язків ітераційного методу, який використовує MATLAB-функція fzero. Для цього багатократним розв’язуванням рівнянь за різних початкових умов треба знайти найбільший початковий відрізок, між кінцями якого є розв’язок.

%*************************************************************************

%*** Nonlinear equation resolution (bisection and interpolation) ***

%*************************************************************************

clear;

x=-4:0.05:4; f=parab(x); %f=sin(x); %f=tan(x);

plot(x,f); grid;

[x0, val, flag, output]=fzero('x.*x-1', [-10, 0.999]),

%[x0, val, flag, output]=fzero(@parab, [-0.999, 1e100]),

%[x0, val, flag, output]=fzero('sin(x)', [pi, pi*2]),

%[x0, val, flag, output]=fzero('tan(x)', [pi/2, pi]),

%**** Content of file parab.m *****************************************

%function y=parab(x); y=x.*x-1;

Після очищення робочої області пам’яті утворено вектори значень аргументу х та функції лівої частини нелінійного рівняння, за якими побудовано і виведено графік цієї функції. В тексті програми є три варіанти функції: х2-1; sin(x); tan(x).

Наступний оператор власне розв’язує нелінійне рівняння за допомогою MATLAB-функції fzero. Ця функція знаходить дійсний розв’язок за комбінованим методом: попереднє звуження відрізка пошуку за методом половинного ділення з подальшим лінійним або параболічним інтерполяційним методом.

Аргументами MATLAB-функції fzero є функція лівої частини рівняння і вектор з двох елементів, що вказує початковий відрізок пошуку.

Вивід результатів розв’язування в командне вікно MATLAB описано у лівій частині оператора. Це розв’язок x0, значення функції лівої частини рівняння val у точці x0, логічна змінна flag, рівна 1 при успішному результаті та -1 в протилежному випадку, а також вектор output, який містить деякі результати пошуку розв’язку. В тексті програми показані чотири варіанти застосування функції fzero.

Останні стрічки програми містять опис функції parab(x) в окремому файлі з іменем parab.m.