matlab_10
.pdfВ качестве начального приближения возьмем точку [–1.2 1]:
>>options=optimset('tolX', 1.e-6);
>>[xmin, opt, rosexflag, rosout] = fminsearch(@rb, [-1.2 1], options) xmin = 1.0000 1.0000
opt = 4.1940e-014 rosexflag = 1 rosout = iterations: 101 funcCount: 189
algorithm: 'Nelder-Mead simplex direct search'
Аппроксимация производных конечными разностями
•diff(X) - возвращает конечные разности смежных элементов массива X. Если X – вектор, то diff(X) возвращает вектор разностей соседних элементов, у которого количество элементов на единицу меньше, чем у X. Если X – матрица, то diff(X) возвращает матрицу разностей столбцов;
•diff(X,n) - возвращает конечные разности порядка n. Так, diff(X,2)
– это то же самое, что и diff(diff(X));
•Y = diff(X, n, dim) возвращает конечные разности для матрицы Х по строкам или по столбцам, в зависимости от значения параметра dim. Если порядок n равен величине dim или превышает ее, то diff возвращает пустой массив.
Пример:
>> X=0:0.05:10; S=sin(X); plot(diff(S)./diff(Х))
Вычисление конечно-разностным методом градиента функции:
•FX = gradient(F) возвращает градиент функции одной переменной, заданной вектором ее значений F. FX соответствует конечным разностям в направлении х;
•[FX, FY] = gradient(F) возвращает градиент функции F(X,Y) двух переменных, заданной матрицей F, в виде массивов FX и FY. Массив FX соответствует конечным разностям в направлении х (столбцов). Массив FY соответствует конечным разностям в направлении у (строк);
•[FX, FY, FZ, …] = gradient(F) возвращает ряд компонентов градиентафункции нескольких переменных, заданной в виде многомерного массива F.
Пример:
>>F=[1 2 3 6 7 8; 1 4 5 7 9 3; 5 9 5 2 5 7]
F =
1 2 3 6 7 8
1 4 5 7 9 3
5 9 5 2 5 7
>>[FX, FY] = gradient(F)
FX =
1.0000 1.0000 2.0000 2.0000 1.0000 1.0000
3.0000 2.0000 1.5000 2.0000 -2.0000 -6.0000
4.0000 0 -3.5000 0 2.5000 2.0000 FY =
0 2.0000 2.0000 1.0000 2.0000 -5.0000
2.0000 3.5000 1.0000 -2.0000 -1.0000 -0.5000
4.0000 5.0000 0 -5.0000 -4.0000 4.0000