Griefin
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Есть такой вопрос насчет вычисления функций, которые переданы как параметр. Простой пример: хочу написать функцию ExportFunction, которая строит и экспортирует массив в формате x,y. В качестве аргумента у нее будут произвольная функция f[..., x,...], ее аргумент x, интервал и еще какие-то параметры. ExportFunction[f_, {x_, x1_, x2_, n_}, file_] := Export[file, Table[{p, f /. x->p}, {p, x1, x2, (x2 - x1)/n}] // N, "Table"] Такой код проходит для простых функций. Однако, если функция f достаточно сложная, например, содержит аргумент как предел численного интегрирования, то этот код не работает. Если не передавать функцию в качестве аргумента, а делать все руками на встроенных функциях: Export["filename", Table[{x,f}, {x, x1, x2}]] то все нормально. Вопрос: как нужно вычислять функцию, передаваемую в качестве параметра? HoldAll[f] /. x->p, Block[{x=p}, f] не помогают. | Всего записей: 759 | Зарегистр. 19-07-2003 | Отправлено: 06:29 22-11-2009 | Исправлено: Griefin, 08:18 22-11-2009 |
|