Илюстриран урок за MatLab ›Числени методи› Изчисляване на нули на функция от единица
Изчисляване на нулите на функция от една променлива
Редица функции на MATLAB са предназначени за работа с функции. По аналогия с дескриптори на графични обекти могат да се използват обекти от класа на дескрипторите на функции, посочени с помощта на символа @, например:
Забележка
Под функции разбираме както вградени функции, като sin (x) или exp (x), така и потребителски функции, като f (x), дефинирани като t-файлове-функции.
Числените стойности на такива функции, определени от дескрипторите, се изчисляват с помощта на функцията февал:
За съвместимост с предишни версии можете да пишете функции в символна форма в апострофи, като използвате функцията eval за да ги изчислите може да е по-визуално, не е необходимо да създавате m-файл, но в урока ще се опитаме да използваме нова нотация, като използваме дескриптори на функции и февал, тъй като прави програмирането „по-обектно ориентирано“, скоростта, точността и надеждността на числените методи се увеличават. Следователно, въпреки че навсякъде в следващия текст, вместо @fun, можете да замените символната стойност на функцията в апострофи, ние ще използваме нотация @fun за дидактически цели. Понякога обаче можете да използвате старата нотация интерактивно, за да избегнете създаването на m-файл на функцията.
Доста често проблемът за решаване на нелинейно уравнение на формата f (x) = 0 или /, (r) =/2 (dg). Последното обаче може да бъде сведено до формата f (x) = f 1 (x) - f 2 (x) = 0. По този начин тази задача се свежда до намиране на стойностите на аргумента х функции f (x) една променлива, при която стойността на функцията е равна на нула. Съответната функция MATLAB, която решава този проблем, е показана по-долу:
- fzero (@ забавно, x) - връща рафинираната стойност на x, при която при началната стойност на аргумента x се достига нула на функцията fun, представена в символна форма. Върнатата стойност е близо до точката, където функцията променя знака, или равна на NaN, ако такава точка не е намерена;
- fzero (@fun, [x1 x2]) - връща стойността x, за която fun (x) = 0 с посочен интервал за търсене, като се използва векторът x = [xl x2], така че знакът за забавление (x (D) се различава от знака за забавление (x (2)) Ако това не е, се появява грешка. Извикването на fzero с интервал гарантира, че fzero връща стойност, близка до точката, където забавлението променя знака;
- fzero (@ забавно, x.tol) - връща резултата с посочената грешка tol;
- fzero (@ забавно, x.tol.trace) - показва информация за всяка итерация;
- fzero (@ fun, х.tol.trace, Р1.Р2, ...) - предоставя допълнителни аргументи, предадени на функцията fun (x.Pl, P2, ...). Когато се посочва празна матрица за tol или трасиране, се използват стойностите по подразбиране. Пример: