2012-04-26 7 views
2

Предположим, что мы функция определяется как:Matlab Функции и аргументы

функции (F, ДФ, x0)

где F есть функция, ФР ее производная, а х0- первоначальный пункт. Как определить f в командной строке? Используете ли вы встроенное определение? Как насчет df и x0? Что, если df - градиент? Также, если x0 - упорядоченная пара, как вы определяете ее в командной строке?

ответ

1

Чтобы передать функцию в качестве переменной, вам необходимо использовать функциональный дескриптор . Простой способ продемонстрировать это - использовать дескриптор функции для анонимной функции . Простая анонимная функция может быть определена следующим образом:

handle = @(arglist)anonymous_function 

Таким образом, чтобы сделать анонимную функцию, которая добавляет 2 номера, вы могли бы сделать что-то вроде следующего:

f = @(a,b)a+b; 

Вы можете использовать это, как и любой другая функция

>> f(1,2) 

ans = 

    3 

Если ФР только простое числовое значение, оно может быть определено следующим образом:

df = 0.4 

Чтобы определить пару значений, вы можете сделать это следующим образом:

X0=[1 2] 

Наконец, вы можете поместить все это вместе с этим примером функции (поместить это в файл под названием MyFunc). , ,

function out = myfunc(f,df,x0) 

out = df * f(x0(1), x0(end)); 

Это то, что вы хотите? Меня слегка смутила «х0 - упорядоченная пара».

Смежные вопросы