2014-03-02 5 views
0

Я изучаю ode45 в своем классе вычислительной физики. Я немного смущен, это анонимная функция. Что это? Я искал вокруг, но я не могу найти ничего.Анонимная функция В ode45

+1

Это потому, что это анонимно! –

+2

@Mark: анонимные функции описаны в документации (http://www.mathworks.de/de/help/matlab/matlab_prog/anonymous-functions.html). – Daniel

ответ

3

Примечание: Это не технический ответ, это происходит из моего опыта, используя ode45. Надеюсь, вы сочтете это полезным и ответит на ваш вопрос. Если кто-то хочет исправить какие-либо ошибки или детали, я ошибаюсь, пожалуйста.

При использовании Matlab ode solvers вы должны указать функцию производной, которая принимает в качестве входных данных независимую переменную (например, время) и зависимую переменную (ы) (например, положение, скорость и т. Д.). Есть несколько способов сделать это.

Вы можете сделать функцию function dydt=derivative(t,y), которая оценивает производную форму по адресу y и t, которую вы можете позвонить из других сценариев. Это полезно, если вы будете решать одну и ту же оду из нескольких разных m-файлов.

С другой стороны, если вы только собираетесь решить проблему с m-файла, нет необходимости создавать целую новую функцию только для одной ode, поэтому вы можете использовать анонимную функцию. Здесь у вас есть два выбора. Вы можете создать такую ​​функцию, как [email protected](t,y) x+t, а затем, когда вы вызываете ode45, используйте ode45(dydt,tspan,y0) или определите ode в вызове функции: ode45(@(t,y) dydt,tspan,y0).

При решении небольших разовых проблем я обычно определяю свою оду как анонимную функцию, например [email protected](t,y) .... Если я работаю над большим проектом, я напишу функцию для производной.

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