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.  Це  дозволяє
   120   121   122   123   124   125   126   127   128   129   130