Примеры решения научно-технических задач

Математика MATLAB

Пример функции с встроенной подфункций

Подфункции определены и действуют локально, т. е. только в пределах т-файла, определяющего основную функцию. Команда help пате выводит комментарий, относящийся только к основной функции, тогда как команда type name выводит весь листинг m-файла. Так что заданные в некотором m-файле подфункции нельзя использовать ни в командном режиме работы, ни в других т-файлах. При обращении к функции интерпретатор системы MATLAB прежде всего просматривает m-файл на предмет выявления подфункций. Если они обнаружены, то задаются как локальные функции. Благодаря локальному действию подфункций их имена могут совпадать с именами основных функций системы. Если в функции и подфункциях должны использоваться общие переменные, их надо объявить глобальными как в функции, так и в ее подфункциях.

 

Аппроксимации рядом Тейлора

Начнем с аппроксимации функции хорошо известным рядом Тейлора степени 8 относительно середины интервала (точки с х=2):

Такой ряд позволяет использовать для вычислений только арифметические действия, что само по себе здорово! Для удобства преобразуем аппроксимацию в функцию, чтобы она соответствовала форме, указанной для первоначальной функции f(x). Тогда мы сможем построить график кривой ошибок для аппроксимации полиномом Тейлора:

Кривая ошибок для аппроксимации полиномом Тейлора строится командой: 

> plotd(f- TaylorApprox,0..4,.co1or=black);

и имеет вид, представленный на рис. 17.2. Эта кривая нас, прямо скажем, не слишком радует, поскольку погрешность в сотни раз превышает заданную.

Рис. 17.2. Кривая погрешности при аппроксимации рядом Тейлора

Типичное свойство аппроксимации рядом Тейлора состоит в том, что ошибка мала вблизи точки разложения и велика вдали от нее. В данном случае самая большая ошибка имеет место в левой оконечной точке. Чтобы вычислить значение ошибки в точке х =0, что ведет к делению на нуль (см. определение для f(x)), мы должны использовать значение предела:

> maxTaylorError := abs( Limit(f(x), х-0) - ТауlorАрргох(0) );

 maxTaylorError := .0015029620

Итак, в самом начале наших попыток мы потерпели полное фиаско. Но отчаиваться не стоит, ибо, как говорят, «даже у хорошей хозяйки первый блин — комом».

Физика, математика лекции учебники курсовые студенту и школьнику