Иллюстрированный самоучитель по Matlab


Вычисление нулей функции одной переменной - часть 2


  • fzero(@fun,x.tol) — возвращает результат с заданной погрешностью tol;

  • fzero(@fun,x.tol .trace) — выдает на экран информацию о каждой итерации;

  • fzero(@fun,х.tol .trace,Р1.Р2,...) — предусматривает дополнительные аргументы, передаваемые в функцию fun(x.Pl,P2,...). При задании пустой матрицы для tol или trace используются значения по умолчанию. Пример:

  • fzero(fun,x,[ ],[ ],Р1).

    Для функции fzero ноль рассматривается как точка, где график функции fun

    пересекает

    ось

    х,

    а не

    касается

    ее. В зависимости от формы задания функции fzero реализуются следующие хорошо известные численные методы поиска нуля функции: деления отрезка пополам, секущей и обратной квадратичной интерполяции. Приведенный ниже пример показывает приближенное вычисление р/2 из решения уравнения cos(x)=0 с представлением косинуса дескриптором:

    » х= fzero(@cos.[1 3]) 

    x =

    1.5708

    В более сложных случаях настоятельно рекомендуется строить график функции

    f(x)

    для приближенного определения корней и интервалов, в пределах которых они находятся. Ниже дан пример такого рода (следующий листинг представляет собой содержимое m-файла fun1.m):

    %Функция, корни которой ищутся 

    function f=funl(x) 

    f=0.25*x+sin(x)-1;

    » х=0:0.1:10;

    » plot(x,funl(x));grid on;

    Из рисунка нетрудно заметить, что значения корней заключены в интервалах [0.5 1], [2 3] и [5 6]. Найдем их, используя функцию fzero:

    » xl=fzero(@funl.[0.5 1]) 

    xl =

    0.8905

    » x2=fzero(@funl.[2 3]) 

    x2 =

    2.8500

    » x3=fzero(@funl,[5.6]) 

    x3 =

    5.8128

    » x3=fzero(@funl,5,0.001)

     x3 =

    5.8111

    Обратите внимание на то, что корень хЗ найден двумя способами и что его значения в третьем знаке после десятичной точки отличаются в пределах заданной погрешности tol =0.001. К сожалению, сразу найти все корни функция fzero не в состоянии. Решим эту же систему при помощи функции f sol ve из пакета Optimization Toolbox, которая решает систему нелинейных уравнений вида f(x)=0 методом наименьших квадратов, ищет не только точки пересечения, но и точки касания, f solve имеет




    Начало  Назад  Вперед