И другие программы этой серии
Этот текст надо записать в файл MyFunc2 .m в текущий каталог системы MATLAB. После этого можно вызвать функцию fmins:
xmin = fmins ( \'MyFunc2\', [1,1] ); которая приближенно находит вектор xmin координат точки минимума:
xmin(1)
ans =
-2.102352926236483е-005
xmin(2)
ans =
2.548456493279544е-005
Обе найденные координаты близки к своим точным значениям, равным нулю.
Для функций нескольких переменных еще важнее, чем для ранее рассмотренных функций одной вещественной переменной, постараться априорно оценить количество и приблизительное нахождение локальных минимумов. Тут могут существенно помочь трехмерные графики (plot3d).
Вычисление определенных интегралов
Из всех методов вычисления определенных интегралов самым простым, но в то же время довольно успешно применяемым является метод трапеций.
Для вычисления интегралов методом трапеций в ней предусмотрена функция trapz:
• Integ = trapz( х, у ) ;
Одномерный массив х (вектор) содержит дискретные значения аргументов подынтегральной функции. Значения подынтегральной функции в этих точках сосредоточены в одномерном массиве у. Чаще всего для интегрирования выбирают равномерную сетку, то есть значения элементов массива х отстоят друг от друга на одну и ту же величину- шаг интегрирования. Точность вычисления интеграла зависит от величины шага интегрирования: чем меньше этот шаг, тем больше точность.
Вычислим простой интеграл
b
S cos (x)dx
a
методом трапеций с разной величиной шага интегрирования. Сначала зададим шаг интегрирования равным pi/10:
dx = pi/10; х = 0:dx:pi; y=cos(x); I = trapz(x,y);
I =
5.5511e-017
и получим поразительно точный результат (абсолютно точный равен нулю), который бесполезно пытаться улучшать, так как уже достигнута предельная точность, обусловленная конечной точностью хранения вещественных чисел на компьютере (примерно 16 десятичных знаков после запятой).
Такая высокая точность является скорее исключением, чем правилом.