II Всероссийская конференция пользователей MATLAB, 25-26 мая 2004 года >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Вход
Раздел "Optimization Toolbox 2.2 Руководство пользователя"

А.Г.Трифонов. Оптимизация встроенных объектов вместо М-файлов

Программные возможности тулбокса Оптимизация позволяют проводить оптимизацию встроенных объектов, что позволяет избежать написания М-файлов для определения искомых функций.

Для введения математической функции в командную строку следует создать встроенный объект из строкового выражения. Например, можно создать встроенный объект функции humps (для того, что бы просмотреть М-файл функции humps.m следует выполнить команду humps):

f = inline('1./((x-0.3).^2 + 0.01) + 1./((x-0.9).^2 + 0.04)-6');

Можно вычислить f в точке 2.0:

f(2.0)

ans =
-4.8552

и передать f в программу минимизации ввиде:

x = fminbnd(f, 3, 4)

Кроме того, возможно создать функции и более одного аргумента посредством спецификации имени входных аргументов совместно со строковым выражением.

Например, при использовании функции lsqcurvefit, в начале следует организовать функцию с двумя входными аргументами:

x и xdata,

f= inline('sin(x).*xdata +(x.^2).*cos(xdata)','x','xdata')
x = pi; xdata = pi*[4;2;3];
f(x, xdata)
ans =
9.8696e+000
9.8696e+000
-9.8696e+000

затем обратиться к команде lsqcurvefit.

% Предположим, что ydata  уже существуют
x = lsqcurvefit(f,x,xdata,ydata)

Другой пример использования данного подхода
  • Матричное уравнение

    x = fsolve(inline('x-[1,2;3,4]'),ones(2,2))

  • Нелинейная задача на метод наименьших квадратов

    x = lsqnonlin(inline('x-[3 5;9 10]'),eye(2,2))

  • Пример использования fgoalattain как функции с дополнительными аргументами, которые необходимо передать в подпрограмму оптимизации. Например, пусть подлежащая оптимизации функция имеет дополнительные аргументы A, B и C,

    fun = inline('sort(eig(A+B*x*C))','x','A','B','C');
    x = fgoalattain(fun,-ones(2,2),[-5,-3,-1],[5, 3, 1],...
    [ ],[ ],[ ],[ ],-4*ones(2),4*ones(2),[ ],[ ],A,B,C);

  • Решение данной задачи подробно приведено в описании функции fgoalattain.


О получении локальных копий сайтов
  Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro   
E-mail:    
  Информация на сайте была обновлена 11.05.2004 Copyright 2001-2004 SoftLine Co 
Наши баннеры