Page 125 - 363_
P. 125
126
12 Створення функцій від функцій
Деякі алгоритми є загальними для усіх видів функцій певного вигляду.
Тому, їх програмна реалізація є єдиною, але потребує знання алгоритму
обчислення функції, який може суттєво змінюватися при переході від одної
функції до іншої. Останній алгоритм може бути зафіксований у вигляді деякої
файл-функції. Щоб перший, більш загальний алгоритм був пристосований для
будь-якої функції, що використовується в ньому, потрібно, щоб ім'я цієї
функції набувало будь-якого вигляду, тобто було деякою змінною, що набуває
певного значення (текстового імені файл-функції) лише при зверненні до
основного алгоритму.
Такі функції від функцій вже розглядалися у розділі 4. До них належать
процедури:
– обчислення інтегралів від функції, які потребують указання імені
М-файлу, що містить обчислення значення підінтегральної функції;
– чисельного інтегрування диференційних рівнянь, які потребують
указання імені М-файлу, в якому обчислюються праві частини рівнянь у
формі Коші;
– алгоритми чисельного обчислення коренів нелінійних алгебричних
рівнянь, які потребують указання файл-функції, корінь якої відшукується;
– алгоритми пошуку мінімуму функції, яку потрібно задавати
відповідним М-файлом тощо.
На практиці досить часто виникає потреба створити власні процедури.
MatLAB надає такі можливості.
12.1 Процедура feval
У MatLAB будь-яка функція (процедура), наприклад, за ім'ям FUN1,
може бути виконана не лише за допомогою звичайного звернення вигляду:
[yl,y2 ...... yk] = FUNl(xl,x2,...,xn),
а і за допомогою спеціальної процедури feval таким чином:
[yl,y2 ...... yk] =feval('FUN l',xl,x2xn),
де ім'я функції FUN1 є вже однією з вхідних змінних – текстовою змінною, і
тому вміщено у апострофи.
Перевагою виклику функції у другій формі є те, що він має той самий
вигляд при змінюванні імені функції, наприклад, на FUN2. Це дозволяє