Особливості функцій управління організаціях державного сектора. Загальні функції керування. Загальна характеристика: їх перелік та характеристика. Спеціалізовані функції

Основні питання

ЛЕКЦІЯ 4. ПРИРОДА І СКЛАД ФУНКЦІЙ МЕНЕДЖМЕНТУ

1. Загальні та спеціалізовані функції менеджменту.

2. Особливості функцій управління організаціях державного сектора.

3. Навички, основні обов'язки та функції менеджерів в організації.

Слово "функція" означає діяльність, роботу, обов'язок. Функції, здійснювані під час виробництва матеріальної продукції, поділяються на виконавські та організаторські, або функції управління. Виконавчі функції виконуються працівниками відповідно до конкретного завдання та своєї кваліфікації.

За виконання будь-якої управлінської функції здійснюється синтез (об'єднання) працівників для виконання поставлених завдань, координація їх діяльності. Ось цей елемент синтезу в управлінської діяльностіта відрізняє функції управління від функцій виконавських. Функції управління виробництвом є відносно самостійний вид синтезуючої діяльності людей, обумовлений наявністю поділу праці в управлінні виробництвом. Відносність цієї самостійності полягає в тому, що будь-яке управлінське рішення та дія підпорядкована кінцевій меті управління. Функції управління можна класифікувати за різним ознакам. Зручніше їх розділяти на функції загального та спеціалізованого управління.

Загальні функціїменеджменту здійснюються у будь-якому виді діяльності, усіма керівниками та фахівцями. Вони мають забезпечити основний порядок функціонування керованого об'єкта (верстата, бригади, цеху, фірми). До цих функцій відносяться планування, організація, мотивація (керівництво) і контроль, хоча у науковій літературі перелік цих функцій може бути більшим.

Спеціалізовані функції управлінняділяться на три групи: технологічні, що забезпечують та координуючі.

Технологічні функціїпередбачають розробку раціональних систем виробництва продукції, технології її створення, переробки, зберігання та транспортування.

Забезпечуючі функціїпередбачають виконання вимог технології виробництва продукції шляхом забезпечення її всім необхідним. Сюди відносяться інженерне, матеріально-технічне, культурно-побутове та господарське обслуговування.

Координуючі функціїзабезпечують прогнозування розвитку підприємства; виробничо-економічне та оперативно-технічне планування; організацію виробничих процесівта праці людей; управління, контроль та регулювання ходу виробництва (оперативне управління).

На виконання спеціалізованих функцій створюються служби управління виробництвом. Вони є групи спеціалістів та допоміжних працівників, які здійснюють певні спеціалізовані функції управління. На чолі служб управління стоять головні фахівці: головний економіст, головний технолог, головний інженерта ін.



Розглянемо докладніше деякі загальні функції управління.

Планування- функція управління, визначальна мети діяльності, необхідних цього кошти, і навіть розробляє методи, найефективніші у конкретних условиях. Планування включає і складання прогнозів можливого напрями майбутнього розвитку об'єкта в тісній взаємодії з навколишнім середовищем. Планування – це основна, стартова функція менеджменту. Саме зі складання плану починається діяльність будь-якої фірми чи компанії. Планування – процес визначення пріоритетних напрямківрозвитку організації, а також програми дій щодо їх досягнення.

Існує кілька різновидів планів. Стратегічні (довгострокові) планискладаються період від 3 до 5 років. Зазвичай у них міститься філософія розвитку фірми, і навіть найбільш загальні цілі, намічені її керівництвом. Терміни цих планів залежать від стабільності в економічній, політичній та інших сферах. Чим стабільніша ситуація, тим більш тривалий термін формуються ці плани.

Середньострокові планискладаються на період від одного року до злочину років. Містять цілком конкретні цілі та кількісні характеристики.

Короткострокові планискладаються на період у межах одного року (кварталу, місяця тощо).

Досвідчені менеджери своєї діяльності зазвичай застосовують всі види планування. Уміння поєднувати їх, дбаючи не лише про інтереси фірми та її персоналу, а й про інтереси клієнтів, ділових партнерів, суспільства загалом, безпосередньо пов'язане з їхнім професіоналізмом.

Організація– функція формування структури об'єкта управління та забезпечення його всім необхідним для нормального функціонування - персоналом, вихідними ресурсами, обладнанням, будинками, грошима. Організація як функція управління включає:

· Організаційне проектування;

· Організацію процесу роботи.

Організаційне проектування- розподіл організації на блоки, відповідні найважливішим напрямам діяльності з реалізації цілей організації. Цей процес передбачає встановлення повноважень різних посад, визначення посадових взаємин конкретних осіб.

Організація процесу роботивключає забезпечення нормального функціонування і взаємодії різних підрозділів організації при досягненні запланованих цілей.

Організаційна структурає " продуктом " процесу організаційного проектування і є формальні правила, розроблювані менеджерами для ефективного поділу праці та розподілу офіційних обов'язків серед окремих співробітників та груп. Структура характеризує стійкі зв'язки між елементами організації, дозволяє визначити сфери контролю керівників та скоординувати всі функції.

Контроль- кількісна та якісна оцінка та облік результатів роботи. Контроль є елементом зворотний зв'язок, оскільки виходячи з його даних проводиться коригування раніше прийнятих рішень, планів, і нормативів. Контроль - це спостереження за досягненням організацією своїх цілей. Він необхідний для виявлення і вирішення проблем, що виникають раніше, ніж вони стануть занадто серйозними. Контроль пов'язує воєдино всі функції управління, оскільки дозволяє менеджерам підтримувати прийнятний стан справ та коригувати неправильні кроки шляхом перепланування, реорганізації чи переорієнтації. Контроль ґрунтується на зворотних зв'язках.

Існує три різновиди контролю: попередній, поточний та заключний.

Попередній контрольдозволяє перевірити готовність об'єкта (фірми) на початок роботи. При цьому перевіряється стан матеріальних та фінансових ресурсів, готовність до роботи персоналу.

Поточнийє основним видом контролю. Він проводиться у процесі функціонування фірми. При цьому контролюються робота підлеглих та виконання технології виробництва. За поточного контролю фактичне ведення справ порівнюється зі стандартами або нормативами.

Стандарти (нормативи)- критерії, якими можна оцінювати результати діяльності. Існує три види нормативів: натуральні, вартісні та тимчасові.

До натуральнимвідносяться норми витрат матеріалів на одиницю продукції. До вартіснимнормативам можна віднести кошторис майбутніх витрат. Тимчасові стандартивизначають час, необхідне здійснення тієї чи іншої задачі.

Вимірюванняцеоперація, за допомогою якої встановлюється чисельне відношення між величиною, що вимірюється, і заздалегідь обраною одиницею вимірювання або масштабом. Ценайважчий і найдорожчий елемент контролю. Витрати, пов'язані з вимірами, часто визначають, чи варто займатися контролем. Адже основна мета контролю полягає не так у тому, щоб встановити, що відбувається насправді, а в тому, щоб знизити витрати на виробництво і збільшити прибуток.

Заключний (підсумковий) контрользоцінкою виконання фірмою своїх планів вимагає всебічного аналізу сильних та слабких сторін діяльності організації за минулий період з метою отримання необхідної інформаціїдля наступних етапів планування. Заключний контроль здійснюється, коли робота вже закінчена, при цьому можуть бути два типи контролю: зовнішнійі внутрішній (самоконтроль).

Контроль дуже впливає на поведінку людей. Невдало спроектована система контролю може зробити поведінку працівників орієнтованим її у, тобто. Люди прагнуть задоволення вимог контролю, а не до досягнення поставлених цілей, що може вести до видачі спотвореної інформації. Контроль ефективний, якщо він носить стратегічний характер, орієнтований на досягнення конкретних результатів, проводиться своєчасно та економічно.

При плануванні та організації роботи керівник визначає, що має виконати дана організація, коли, як і хто, на його думку, повинен це зробити. Якщо вибір цих рішень зроблено ефективно, керівник отримує можливість реалізувати свої рішення у справи, застосовуючи практично основні принципи мотивації.

Мотиваціяце функція управління, процес спонукання індивіда до діяльності задля досягнення цілей організації та/або особистих цілей. Під керівництвом розуміється використання впливу менеджера для мотивації працівників для досягнення цілей організації. Ефективне керівництво передбачає, що це співробітники організації поділяють її мети, цінності та культуру, прагнуть досягненню високих результатів спільної діяльності.

Мається на увазі, що мотивуватися до вирішення поставлених завдань можуть як безпосередньо підлеглі менеджеру співробітники, так і цілі відділи та підрозділи. У наш час невизначеності, «спрощення» компаній, міжнародної конкуренції та ступеня різноманіття робочої сили, що збільшується, здатність менеджменту сформувати корпоративну культуру, донести до працівників мети організації та створити стимули для досягнення цих цілей - критично важливий фактор успіху бізнесу.

Мотиви- Це сукупність психологічно рушійних причин, що зумовлюють поведінку, дію та діяльність людей.

Мотиваційна структура- Сукупність різних мотивів, що зумовлюють поведінку людей.

Систематичне вивчення мотивації з психологічної точки зору не дозволяє визначити точно, що спонукає людину до праці. Проте вивчення поведінки людини у праці дає деякі загальні пояснення мотивації і дозволяє створити прагматичні моделі мотивації працівника робочому місці.

Основу мотивації становлять потреби та винагорода. Потреби - це усвідомлене відсутність чогось, потреба у чомусь, прагнення чогось, що викликає спонукання до дії. Первинні потреби закладені генетично, а вторинні виробляються під час пізнання та набуття життєвого досвіду. Потреби неможливо безпосередньо спостерігати чи вимірювати. Про існування можна судити лише з поведінки людей. Потреби є мотивом до дії.

Винагорода -це те, що людина вважає для себе цінною. Менеджери використовують зовнішні винагороди (грошові виплати, просування по службі) та внутрішні винагороди (почуття успіху при досягненні мети), які отримують за допомогою самої роботи.

Роздратування мотивів відбувається під впливом стимулів. Як стимули виступає те, що людина хотіла б отримати в результаті певних дій.

Види стимулів:

Примус;

Матеріальне заохочення;

Моральне заохочення;

Самоствердження.

Система стимулювання– це сукупність взаємозалежних і взаємодоповнюючих стимулів, вплив яких активізує діяльність людини задля досягнення поставленої мети. Стимули поділяються на матеріальні та нематеріальні.

Матеріальні, у свою чергу, поділяються на грошові заробітня плата, доплати, надбавки, позички та пільгові кредити) та не грошові, що складаються з соціальних (мед. обслуговування, страхування, путівки, харчування, подарунки тощо) та функціональних (покращення організації праці, покращення умов праці).

Нематеріальні стимули складаються із соціально-психологічних (суспільне визнання, похвала, підтримка та схвалення), творчих (підвищення кваліфікації, стажування та відрядження) та стимулів вільного часу (гнучкий графік роботи, доп. відпустка). Таким чином, мотивація залежить від потреб, очікування та сприйняття працівниками справедливої ​​винагороди за виконану роботу.

Функції мотивів:

Орієнтує (мотив спрямовує поведінка працівника у ситуації вибору варіантів цієї поведінки);

Сенсотворча (мотив визначає собою суб'єктивну значущість даної поведінки для працівника, виявляючи його особистісний сенс);

Опосередкована (мотив народжується на стику внутрішніх та зовнішніх спонукальних сил, опосередковуючи їхній вплив на поведінку);

Мобілізуюча (мотив мобілізує сили працівника для реалізації значущих для нього видів діяльності);

Виправдувальна (людина виправдовує свою поведінку).

Розрізняють такі види мотивів:

Мотиви спонукання (справжні реальні мотиви, що активізують до дій);

Мотиви судження (проголошені, відкрито визнані, несуть у собі функцію пояснення собі та іншим своєї поведінки);

Мотиви гальма (утримують від певних дій, діяльність людини обґрунтовується одночасно декількома мотивами чи мотиваційним ядром).

Структура мотиваційного ядра залежить від конкретних умов трудових ситуацій:

Ситуація вибору спеціальності чи місця роботи;

ситуація повсякденної роботи;

Ситуація зміни місця роботи чи професії;

Інноваційна ситуація, пов'язана із зміною показників трудового середовища;

Конфліктна ситуація.

Наприклад, для повсякденного трудового поведінки у мотиваційне ядро ​​входять такі мотиви: мотиви із забезпечення першочергових найважливіших соціальних потреб; мотиви визнання, тобто прагнення людини поєднати свою функціональну активність із певним родом занять. Мотиви престижу, прагнення працівника реалізувати власну соціальну роль, зайняти гідний соціальний статус.

У зв'язку з тим, що існують різні шляхи мотивації, менеджер має:

Встановити набір критеріїв (принципів), які найбільше впливають на поведінку співробітника;

Створити атмосферу, сприятливу мотивації працівників;

Активно спілкуватися зі своїми співробітниками, оскільки для того, щоб був повністю мотивований і працював з повною віддачею, він має чітко уявляти, чого від нього чекають.

Останніми роками з'явився альтернативний погляд мотивування персоналу підприємств, і проблема мотивації стала розглядатися під дещо іншим кутом. Навіть ті, хто твердо дотримувався будь-якої з традиційних теорій мотивації, припускають, що можливий інший підхід до вирішення цього питання. Є думка, що схильна до мотивації людина – це людина з дитячою психікою. Сформована особистість має бути психологічно самодостатньою та інтелектуально незалежною. А якщо керівник вважає, що він здатний мотивувати персонал, це означає одне з двох: або він помилково ставить персонал на інтелектуальну сходинку нижче себе, або він цілеспрямовано наймав персонал, не здатний адекватно оцінювати обстановку.

Така думка на мотивацію – не єдине чи виняткове явище. Багато керівників провідних компаній на даний моментякщо не відкидають мотивацію повністю, то принаймні переосмислюють її та її вплив на робочий процес

Найважливішим фактором результативності роботи працівників є їхня мотивація до повноцінної праці. У нашій країні поняття мотивації праці економічному сенсі виникло порівняно недавно у зв'язку з демократизацією виробництва. Раніше воно вживалося лише у гуманітарних науках, таких як соціологія, педагогіка та психологія. Сьогодні мотиваційні аспекти управління працею отримали широке застосуванняу всіх країнах із розвиненою ринковою економікою.

Сучасні теорії мотивації, засновані на результатах психологічних досліджень, доводять, що справжні причини, що спонукають людину віддавати роботі всі сили, надзвичайно складні та різноманітні. Теорії мотивації бувають змістовними (Маслоу, Альдерфера, Мак Клелланда, Герцберга) та процесуальні (очікування Врума, справедливості Адамса, Портера-Лоулера).

Доцільно об'єднати ці дві групи теорій мотивації, оскільки перша приймає за основу мотиви в статиці, а друга - у динаміці. Як і будь-яке питання теорії організації, проблему мотивації слід вивчати одночасно як структуру (субстанцію) і як процес. Субстанція без руху мертва. Тому на стадії планування робіт слід розробляти та включати до планів показники мотивації, що враховують ситуаційні альтернативні варіантидосягнення мети, а при реалізації планів – вибирати найефективніший варіант.

1. Загальні функції управління. Загальна характеристика: їх перелік та характеристика. Функція- Відносно відокремлений, однорідний, що відрізняється стабільністю змісту вид професійної діяльності, в основі якого знаходиться розумова праця.

Ф поділяються на основні (загальні) і безпосередньо спеціалізовані. До складу спеціалізованих Ф входять такі як: управління допоміжним та обслуговуючим виробництвом, конструкторсько-технологічною підготовкою виробництва, маркетинг, упр. кап. будівництвом, управління працею та зарплатою, упр. фінансами, контроль якості, бух. облік, мат. тих. постачання, підготовка кадрів.

Провідну роль грають осн. Вони взаємодіють між собою, визначають спрямованість дій спеціалізованих управління.

Спеціалізовані функції:

Ф планування- Вигляд трудової діяльності, спрямований на досягнення єдиної мети планових завдань, що визначає порядок, терміни та послідовність здійснення робіт. Поточне (річне), оперативно-календарне та перспективне (на 5-7 років). Планування займаються всі управлінські ланки, планується все.;

Ф організації- Розстановка, внутрішня впорядкованість елементів та елементів цілого: робочих місць, трудових процесів. Ф веде до взаємозв'язку між частинами цілого. Ф притаманна як до індивідуальної і групової діяльності.;

Ф регулювання– підтримання стану стійкості та сталості процесів у системі управління, забезпечення динамічної сталості складу та властивостей внутрішнього середовищаоб'єкта, збалансованість функцій, їх збереження у заданих межах. 2 види регулювання: 1) за відхиленням (від планових завдань, норм, показників); 2) за критичними параметрами (коли рівень параметра недоступний, його слід змінити);

Ф обліку– збір, реєстрація та аналіз виробництва та розподілу продукції, наявності та використання матеріальних, трудових та фінансових ресурсів. Складається з оперативно-технічного, статистичного та бухгалтерського обліку.

Ф контролю– перевірка робіт та операцій, видів, типів та марок продукції, послуг – на предмет відповідності нормам та правилам, оцінка можливих наслідків події та параметрів сьогодення;

Ф керівництва- Об'єднує і спрямовує дії всіх інших Ф управління. Підфункції: - координація (погодження) діяльності органів управління, трудових колективів та окремих осіб; - розпорядження щодо організації та виконання конкретних функцій управління; - персональний контроль виконання рішень та дій виконавців.

Організаційні впливи: - Розстановка робочих кадрів, фахівців та керівників; - Розміщення виробничих потужностей (верстатів, обладнання та ін); - розподіл фінансових та матеріальних ресурсів; - Нормування праці та ін.

2. Еволюція теорії та практики менеджменту: наукова школа управління, класична, школа людських відносин.

Класична школа- Найперші дослідження в галузі менеджменту були зроблені класичною школою Анрі Файоль. Він основоположник функціонального підходи до управління, виділив загальні функції управління. За Файоль їх 4: - планування; - Організація; - Мотивація; - Контроль.

Файоль вперше розробив вимоги до менеджера і заговорив (поставив питання) про його навички, знання та характер, який йому має бути притаманний. Послідовники: У. Ірвік, І. Вебер.

Школа «наукового менеджменту»виникла наприкінці 19 – на початку 20 ст. Засновник – Тейлор. Тейлор та її послідовники використовували спостереження, виміри, аналіз та логіку для вдосконалення багатьох операцій ручної праці, домагаючись ефективнішого виконання. При цьому використовувалися хронометри та кінокамера. У 1911 році була опублікована робота Тейлора «Принципи та методи

Так, добре, зараз я хотів би повернутися до тієї теми, яку порушував сьогодні вранці. Я хотів би поговорити про минуле і майбутнє спеціальних функцій. Спеціальні функції були предметом мого захоплення щонайменше останні 30 років. І, гадаю, моя діяльність мала вагомий вплив на просування використання спеціальних функцій. Однак, вийшло так, що я ніколи раніше не порушував цієї теми. Тепер настав час виправити це.

Витяг з Математичної енциклопедії (за редакцією І. М. Виноградова)

СПЕЦІАЛЬНІ ФУНКЦІЇ - у сенсі сукупність окремих класів функцій, що виникають під час вирішення як теоретичних, і прикладних завдань у найрізноманітніших розділах математики.

У вузькому значенні під С. ф. маються на увазі С. ф. математич. фізики, що виникають під час вирішення диференціальних рівнянь із приватними похідними шляхом поділу змінних.

С. ф. можуть бути визначені за допомогою статечних рядів, що виробляють функції, нескінченних творів, послідовного диференціювання, інтегральних уявлень, диференціальних, різницевих, інтегральних та функціональних рівнянь, тригонометричних рядів, рядів по ортогональних функцій.

До найважливіших класів С. ф. відносяться гамма-функція та бета-функція, гіпергеометрична функція та вироджена гіпергеометрична функція, Бесселя функції, Лежандра функції, параболічного циліндра функції, інтегральний синус, інтегральний косинус, неповна гамма-функція, інтеграл ймовірності, різні класиортогональних багаточленів одного та багатьох змінних, еліптична функція та еліптичний інтеграл, Лами функції та Мат'є функції, дзета-функція Рімана, автоморфна функція, деякі С. ф. дискретний аргумент.

Теорія С. ф. пов'язана з уявленням груп, методами інтегральних уявлень, що спираються на узагальнення формули Родріга для класичних ортогональних багаточленів та методами теорії ймовірностей.

Для С. ф. є таблиці значень, і навіть таблиці інтегралів і рядів.


Історія багатьох понять та об'єктів математики простежується ще з часів стародавнього Вавилону. Адже ще 4000 років тому у Вавилоні була розроблена та активно використовувалася 60-річна арифметика з різними складними операціями.

У той час операції складання та віднімання вважалися досить простими. Але це не стосувалося операцій множення та поділу. І для того, щоб робити подібні дії, були розроблені деякі подібності спеціальних функцій.

Насправді, розподіл зводилося до складання і віднімання зворотних величин. А множення досить хитрим чином зводилося до складання та віднімання квадратів.

Таким чином, практично будь-які обчислення зводилися до роботи з таблицями. І, звісно, ​​археологам доводилося знаходити вавилонські таблички з глини з таблицями обернених величин і квадратів.

Тобто вавилоняни вже мали ідею про те, що існують деякі шматочки математичної або обчислювальної роботи, які можна використовувати багаторазово, отримуючи дуже корисні результати.

І, певною мірою, історія спеціальних функцій починається з відкриття принципів роботи з послідовностями цих самих «шматочків».

Наступні «шматки» були, мабуть, тими, що включають тригонометрію. Єгипетський папірус Рінда 1650 року до н.е. вже містив деякі проблеми щодо пірамід, вирішення яких вимагало тригонометрії. Варто згадати, що було знайдено вавилонську табличку з таблицею секансів.

Астрономи тих часів зі своєю моделлю епіциклів, безумовно, вже використовували тригонометрію. І, знову ж таки, всі математичні операції зводилися до роботи з невеликою кількістю спеціальних функцій.

Багато уваги приділялося тому, що вони називали хордами та дугами. Ось малюнок.

Є два радіуси одиничного кола з деяким кутом між ними. Якою є довжина хорди, укладеної між ними? Зараз ми відображення кута в довжину хорди називаємо функцією синуса кута.

І ось зворотне завдання: для деякої довжини хорди – який буде кут? Безперечно, зараз ми це називаємо арксинусом.

Грецькі астрономи дуже серйозно ставилися до цих своїх хордів і дуг. АльмагестПтолемія повна їх. І, кажуть, близько 140 року до н. Гіппарх зібрав 12 томів із таблицями хорд.

Що ж, ідеї про тригонометрію почали поширюватися з Вавилону та Греції. Тригонометрія швидко обростала різними стандартами та правилами. Гіппарх вже перейняв у вавилонян уявлення про 360-градусне коло.

І, від індійського слова «chord», буквально перекладеного арабською і потім неправильно перекладеного латиною, з'явилося слово «sine». Це було в 12 столітті, а на початку 13 століття його активно почав використовувати Фібоначчі.

У 14-му столітті тригонометрія набула широкого поширення. А в середині 16-го століття вона грала вкрай важливу роль у праці Коперника. De Revolutionibus. Ця праця на довгий часстав у своєму роді фундаментальним для тих, хто працював із математичними функціями.

Саме тоді тригонометрія практично повністю знайшла свій сучасний вигляд. Звичайно, є кілька вагомих відмінностей. Наприклад, постійне застосування версинуса. Хтось чув взагалі про таке? По суті, це 1 - Cos[x]. Ви можете знайти його в тригонометричних таблицях, які видавалися до недавнього часу. Однак зараз парочка зайвих арифметичних операцій - зовсім не проблема, тому не варто більше говорити про цю функцію.

Що ж, після тригонометрії наступним проривом були логарифми. Вони з'явилися у 1614 році.

Це був спосіб звести множення та розподіл до операцій складання та віднімання.

Протягом кількох років з'явилося безліч таблиць із логарифмами. Використання таблиць фактично стало повсюдним стандартом, який проіснував більше трьохсот років.

Потрібно було кілька років, щоб натуральний логарифм та експонента набули своєї сучасної форми. Але в середині 17 століття з'явилися вже всі звичні нам елементарні функції. І з тих пір, аж до теперішнього часу вони є, по суті, єдиними явними математичними функціями, про які більшість людей будь-коли дізнається.

Що ж, виходить, літочислення з'явилося наприкінці 17-го століття. І це є час, з якого спеціальні в сучасному уявленні функції почали з'являтися. Багато хто з них з'явився досить скоро.

Десь у 18-му столітті одним із Бернуллі була висунута ідея, що, можливо, інтеграл будь-якої елементарної функції буде так само елементарною функцією. Лейбніц думав, що має контрприклад: . Однак це вираження таким не було. Протягом кількох років йшли активні міркування про еліптичних інтегралах. Принаймні у термінах рядів. І так і були відкриті функції Бесселя.

А до 20-х років 18-го століття Ейлер почав занурюватися у світ обчислень. І він писав про багато наших стандартних спеціальних функцій.

Зазвичай не давав функцій певних назв.

Але поступово все більше функцій, про які він писав, починали використовуватися різними людьми. І часто після деякого періоду їх використання вони отримували вже якісь конкретні позначення та імена.

Було ще кілька сплесків активності у появі спеціальних функцій. Наприкінці 18-го століття були теорія потенціалу та небесна механіка. І, наприклад, функції Лежандра- які тривалий час називалися функціями Лапласа – з'явилися близько 1780 року. У 1820-х роках став популярним комплексний аналіз і почали з'являтися різні двічі періодичні функції. Не можна сказати, що на той час у цій сфері добре було налагоджено комунікацію між людьми. Так що зрештою з'явилися різні несумісні позначення для тих самих понять. Проблеми, що з'явилися тоді, актуальні й сьогодні, і вони часто є приводом для звернень до служби підтримки. Mathematica.

За кілька років набрав обертів гармонійний аналіз, у результаті з'явилися різні ортогональні поліноми - Ерміта, Лейгра тощо.

Що ж, вже на початку 19 століття було ясно, що з'являється цілий «зоопарк» спеціальних функцій. І це змусило Гауса думати про те, як це об'єднати.

Він досліджував гіпергеометричні ряди, які, фактично, були вже відкриті в 1650-ті Валлісом і названі на його честь. І він помітив, що функція ( гіпергеометрична функція Гауса) насправді охоплює безліч відомих спеціальних функцій.

До середини 19-го століття спеціальним функціям приділялося багато уваги, особливо у Німеччині. У цей час з'явилося безліч літератури на цю тематику. Тому, коли Максвелл писав свої праці з електромагнітної теорії в 70-х роках 19 століття, йому не доводилося багато часу приділяти математичному апарату спеціальних функцій; вже було безліч літератури, яку можна було послатися.

Крім суто наукових праць з описом властивостей функцій створювалися і таблиці зі своїми значеннями. Іноді людьми, про яких ніхто до ладу не чув. А іноді і дуже відомими - серед них Якобі, Ейрі, Максвелл.

Так, задовго до кінця 19 століття вже були створені практично всі спеціальні функції, з якими ми маємо справу з сьогодні. Але й інші. Наприклад, хтось чув про те, що таке гудерманіан? Я пам'ятаю, як зустрічав його у довідниках, коли був дитиною. Гудерманіан названий на честь Крістофа Гудермана, учня Гауса. Він встановлює залежність між тригонометричними та гіперболічними функціями та тісно пов'язаний з меркаторовими картографічними проекціями. Однак гудерманіан практично не зустрічається у сучасній літературі.

Що ж, велика кількість інтелектуальних ресурсів було вкладено у розвиток спеціальних функцій останні кілька десятиліть 19-го століття. Думаю, все могло розвиватися у напрямі теорії інваріантів, сизигій або до якихось інших характерних математичних устремлінь вікторіанської епохи. І справді, типова любов чистої математики до абстракцій і узагальненням зробила спеціальні функції довільними і особливо зв'язковими. Це як вивчати якихось дивних тварин у зоопарку замість того, щоб вивчати загальну біохімію.

Проте прогрес у теоретичній фізиці повторно активізував інтерес до спеціальних функцій. механіка. Теорії пружності. Електромагнітна теорія. Потім, у 20-х роках, - квантова механіка, у якій навіть найголовніші завдання вимагали застосування спеціальних функцій, таких як багаточлени Лагерраі Ерміта. А потім була теорія розсіювання, яка, мабуть, використала практично весь зоопарк спеціальних функцій.

Це породило думку, що будь-яка проблема в чистому вигляді якимось чином завжди може бути вирішена у термінах спеціальних функцій. І, поза сумнівом, підручники просували цю ідею. Тому що проблеми, що обговорюються в них, дуже лаконічно формулювалися в термінах спеціальних функцій.

Звичайно, були деякі прогалини. Багаточлени п'ятого ступеня. Завдання трьох тел. Проте вони були надто нестандартними. Не те, що потрібно для сучасних імовірнісних теорій.

Взагалі, сфера спеціальних функцій дуже велика. Створення таблиць набрало дуже великих обертів, особливо у Англії. По суті, ця сфера мала стратегічне значення державної ваги. Зокрема для таких речей, як навігація. Видавалося дуже багато таблиць. Ось, наприклад, непогана добірка від 1794 року. Коли я вперше їх побачив, мені подумалося, що тут маємо бути якесь тимчасове зрушення.


(Насправді цей Вольфам був офіцером бельгійської артилерії. Думаю, у мене з ним спорідненості не більше, ніж зі святим Вольфрамом, який жив у 7 столітті нашої ери).

Таблиці грали важливу роль у той час, що викликало появу різницевої машини Беббіджа в 1820-х роках, яка була призначена для складання точних таблиць. І наприкінці 19-го століття спеціальні функції були основою їхнього складання.

Механічні калькулятори ставали дедалі популярнішими, а Британії та США були масштабні проекти зі створення таблиць спеціальних функцій. Наприклад, як проект WPA ( Works Progress Administration project) у 30-ті, коли за часів Великої депресії людей займали обчисленням значень математичних функцій.

Тоді почалася серйозна робота із систематизації їх властивостей. Кожен мав багато роботи, проте внесок кожного був не дуже великий. Хоча всі думали, що відіграють важливу роль. До речі, ось обкладинка американського Jahnke and Emde, який вперше був виданий 1909-го року, а 30-го обзавівся ілюстраціями.

І дуже непоганими, між іншим.

На початку 20-го століття популярним було створення об'ємних моделей функцій із гіпсу та дерева. Так, у мене виникла ідея для ілюстрації дзета-функції, яку я використав для обкладинки першого видання The Mathematica Bookвід Jahnke and Emde.

Під час Другої світової війни проводилося безліч досліджень із спеціальних функцій, і складно пояснити – чому. Ймовірно, це було викликано якимись військовими потребами. Хоча я схиляюся до того, що це був просто збіг. Проте потенційний зв'язок із якимись стратегічними заходами не слід відкидати.

І ось, перше видання Magnus and Oberhettinger було опубліковано у 1943 році.

На основі нього з'явилося перше видання.

У 1946 році Гаррі Бейтман помер, залишивши великий архів будь-якої інформації за спеціальними функціями. Зрештою, його напрацювання були опубліковані під назвою Bateman Manuscript Project.

Манхеттенський проект, а згодом і проект розробки водневої бомби так само служили замовниками та споживачами спеціальних функцій. У 1951 році, наприклад, Мілт Абрамовіц (Milt Abramowitz) із Національного Бюро стандартів працював над таблицями хвильових функцій Кулону, які йому потрібні були в ядерній фізиці.

З цього поступово виросла книга Абрамовиця-Стігана, видана в 1965 році, яка стала літературою номер один для людей в Америці, які користуються спеціальними функціями.

У 60-ті та 70-ті багато уваги стали приділяти розробці чисельних алгоритмів для комп'ютерів. І обчислення спеціальних функцій було улюбленим місцем.

Робота в більшості випадків була надто специфічна - величезна кількість часу могло витрачатися на якусь конкретну функцію Бесселя конкретного порядку з певною точністю обчислення. Але поступово виникали бібліотеки з колекціями певних алгоритмів щодо обчислення спеціальних функцій. Проте все ще велика кількість людей досі користується довідниками з таблицями, які часто можна побачити на найпомітніших місцях у наукових бібліотеках.

Спеціальними функціями я почав займатися, коли був ще підлітком – у середині 1970-х. Офіційна математика, якою я навчався у школі Англії, свідомо уникала спеціальних функцій. Вона полягала в тому, щоб за допомогою якихось хитрих трюків знаходити відповідь, використовуючи лише елементарні функції. Мені це не дуже подобалося. Мені хотілося чогось більш загального, більш практичного. Менш хитромудрого. І мені сподобалася ідея спеціальних функцій. Вони здавались ефективнішим інструментом. Проте їх обговорення у книгах з математичної фізики ніколи не здавалося досить систематизованим. Так, вони були потужнішими функціями. Але вони все ще здавались дещо умовними: щось подібне до зоопарку з цікавих створінь з іменами вражаючого звучання.

Думаю, мені було десь шістнадцять, коли я вперше почав використовувати спеціальні функції для якихось реальних завдань. То справді був дилогарифм. Він був у роботі з фізики частинок. І мені соромно сказати, що я просто позначав його як f .

Однак у своє виправдання скажу, що полілогарифми тоді були не особливо й вивчені. Звичайні книжки з математичної фізики містили інтеграли Бесселя, еліптичні інтеграли, ортогональні багаточлени і навіть гіпергеометричні функції. Але жодних полілогарифмів. Як виявилося, ще Лейбніц писав про них. Але вони чомусь не потрапили до звичного «зоопарку» спеціальних функцій; і єдина реальна інформація про них, яку я зміг знайти в середині 1970-х, була в книзі з мікрохвиль 1959 видання інженера Леонарда Льюїна (Leonard Lewin).

Невдовзі мені доводилося часто обчислювати інтеграли для діаграм Фейнмана. І тоді я зрозумів, що полілогарифми – це ключ, це те, що потрібне. Полігарірифми стали моїми вірними друзями, і я почав вивчати їхні властивості.

І було дещо, що я тоді помітив, значення чого я справді усвідомив лише через багато часу. Мені варто пояснити, що вміння добре працювати з інтегралами на той час було своєрідним. візитною карткоюфізика-теоретика.

Взагалі, я б ніколи не сказав, що маю якісь таланти в алгебрі. Проте якимось чином я виявив, що якщо використовувати деякі химерні спеціальні функції, то можна значно швидше та зручніше брати інтеграли. Мене навіть стали часто просити щось проінтегрувати. Мені це здавалося дуже дивним. Особливо, якщо врахувати, що будь-який інтеграл я просто записував у вигляді параметричної похідної інтеграла від бета-функції.

Це мене навело на думку, що процес інтегрування можна полегшити, працюючи з якимись більш загальними функціями, а потім переходячи назад. Приблизно як вирішувати кубічне рівняння в комплексному вигляді і потім переходити до дійсних чисел. Та й взагалі є безліч інших прикладів подібного в математиці.

Так ось, десь у 78-му я зрозумів, що маю писати код і автоматизувати процес взяття всіх цих інтегралів. Як приклад, можу навести блок-схему програми на Macsyma, яку я тоді написав.

Комбінація алгоритмів та пошук за таблицею. Це справді працювало і було дуже корисним.

Крім полілогарифмів, я також займався й іншими спеціальними функціями. Функціями Бесселя K-типуу космологічних розрахунках, наприклад.

Обчислення у квантовій хромодинаміці ознаменували розквіт діта-функціїу всій красі. Я розробив теорію областей подій", яка все ще знаходить додатки в експериментальній фізиці. Вона була повністю заснована на сферичних гармоніках та багаточленах Лежандра.

Мені запам'ятався день, коли під час опрацювання однієї теорії з квантової хромодинаміки я натрапив на модифіковану функцію Бесселя 1-го типу. Я ніколи раніше не зустрічався з ними.

Знаєте, розробка спеціальних функцій часто сполучалася якимись цікавими подіями. Та й взагалі - завжди було чудово працювати із завданнями, поставленими у термінах спеціальних функцій. Це було дуже ефектно.

Іноді це здавалося дуже кумедним - показувати якомусь старому фізику якесь математичне завдання. Вони дивилися на них як археологи на уламки стародавніх горщиків. Якби в них були бороди, вони б чухали їх. І, варто зауважити, це міг би бути і багаточлен Лагерра.

І коли хтось говорив, що його проблема включає якісь спеціальні функції, було враження, що йдеться про те, що вона приправлена ​​східними прянощами. І так, Схід теж був включений у роботу. Тому що якось, принаймні в США наприкінці 1970-х, здавалося, що спеціальні функції дуже «російські» на смак.

Як мінімум серед фізиків книга Абрамовіца-Стігана була добре відома. А Янці та Емді були практично невідомі. Як і Магнус, Оберхеттіннджер та інші. Вважаю, що тільки математикам і був відомий проект рукописів Бейтмена (навіть у Калтеху, де він був заснований). Однак у фізиці російські видання мали велику популярність, особливо Градштейн-Рижик.

Я ніколи до кінця не розумів, чому серед спеціальних функцій був такий сильний російський вплив. Говорили, що це тому, що російські не мали хороших комп'ютерів, і їм доводилося робити все в максимально аналітичній формі. Думаю, це не зовсім так. Думаю, що настав час розповісти історію, яка стоїть за Гродштейном-Рижиком.

Я досі не знаю всієї історії, але розповім те, що знаю. 1936-го Йосип Мойсейович Рижик написав книгу під назвою Спеціальні функції, яка була видана Об'єднаним науково-технічним видавництвом (нині Фізматліт). Рижик помер 1941-го - чи то в блокадному Ленінграді, чи то на фронті. У 43-му довідник формул під авторством Рижика був опублікований Державним техніко-теоретичним видавництвом (те саме видавництво, яке змінило назву). Сама книга формулює свою мету як вирішення проблеми із нестачею довідників із формулами. У ній сказано, що деякі інтеграли, наведені в цій книзі, зустрічаються вперше, а решта походять із трьох книг: французької 1858-го року, німецької 1894-го та американської 1922-го. Основні зусилля були спрямовані на систематизацію інтегралів та деякого їх спрощення за рахунок запровадження нової спеціальної функції s яка дорівнює . У ній висловлюється подяка трьом відомим математикам із МДУ. По суті, це все, що ми знаємо про Рижика. Більше, ніж про Евкліда, але ненабагато.

Що ж, рухаємось далі. Ізраїль Соломонович Градштейн народився 1899 року в Одесі і став професором математики в Московському. Державному Університеті. Але в 1948 він був звільнений в рамках радянського гоніння на єврейських учених. Щоб заробити, він хотів написати книгу. І вирішив продовжити справу Рижика. Мабуть, він ніколи не зустрічався з ним. Але він склав нову редакцію, і у третьому виданні книга видавалася під авторством Градштейна-Рижика.

Градштейн помер з природних причин у Москві 1958 року. Ходила легенда, що одного з тих, хто працював над книгою Градштейна-Рижика, розстріляли в рамках антисемітських гонінь через помилку в таблицях, яка спричинила авіакатастрофу.

Тим часом, починаючи десь із 1953 року, Юрій Геронімус, який працював із Градштейном у МДУ, став допомагати йому з редагуванням таблиць та додав деякі додатки для спеціальних функцій. Потім у роботу було включено ще кілька людей. А коли таблиці були опубліковані на Заході, то постали деякі питання про авторські відрахування. Геронімус живий-здоровий і живе зараз в Єрусалимі – Олег Марічев дзвонив йому минулого тижня.

Я думаю, що інтеграли – це щось вічне. Вони не несуть слідів своїх творців. Отже, ми маємо таблиці, проте насправді ми не зовсім розуміємо, звідки вони з'явилися.

Що ж, таким чином, наприкінці 1970-х став досить серйозно захоплюватися спеціальними функціями. Отже, 1979 року, коли я почав створювати SMP- свого роду попередника Mathematica, потрібно додати потужну підтримку спеціальних функцій. Це здавалося очевидним - доручити математичну рутину комп'ютеру.

Ось один з ранніх концептів SMP, написаний в перші кілька тижнів проекту. Тут вже мають місце спеціальні функції.

Ось трохи пізніший.

Перша версія SMP була випущена в 1981 році і вже працювала з практично всіма основними спеціальними функціями.

Деякі з них були слабо опрацьовані. Однак багато хто був задоволений тим, що вони можуть працювати в цьому середовищі зі своїми функціями. Чисельна робота з функціями була організована досить примітивно. Але одна річ, яка зіграла дуже позитивну роль, полягала в тому, що ми серйозно попрацювали над обчисленням загальних гіпергеометричних функцій. І потім ми розглянули безліч інших функцій як їхні окремі випадки. І все було гаразд. Так, крім одного факту – найцікавіші області функцій часто виявлялися виродженими. Так що на практиці навіть числові значення виходили лише в деяких областях.

Ну, минуло кілька років. І 1986 року я почав створювати Mathematica. І цього разу я хотів усе зробити як треба – числові значення для всіх функцій, усіх значень параметрів, у всій комплексній площині, з будь-якою точністю.

Спочатку я подумав, що я, можливо, маю поговорити з експертами. І я дуже виразно пам'ятаю телефонний дзвінок, який у мене відбувся з кимось із державної лабораторії. Я пояснив, що хочу зробити. І запанувала тиша. І потім мені відповіли: " Послухайте, Вам слід зрозуміти, що до кінця 90-х ми сподіваємося врахувати точність набуття значень функцій Бесселя цілісного порядку".

Що ж, нам потрібний інший підхід. Проблема полягала в тому, що той хлопець з функціями Бесселя з лабораторії вважав, що він лише займатиметься чисельними методами. Проте я розумів, що для цих завдань нам потрібна автоматизація. А потім Джері Кейпер розробив автоматизовану системупошуку алгоритмів для обчислення функцій. Вийшло щось у стилі A New Kind of Science – були задані загальні форми раціональних наближень до функцій. Потім була масштабна робота з оптимізації параметрів.

І це подіяло, причому дуже добре. І всі функції стали мати добрі числові значення.

Знаєте, взагалі, варто виконати велику роботу, щоб додати спеціальну функцію в Mathematica. Вам не просто потрібно займатися чисельними значеннями – для всіх значень параметрів та іншого. Також потрібно реалізувати всі їхні властивості у символьному вигляді. Тобто похідні, лави, асимптотичні розкладання. Зі зв'язком з аргументами та параметрами. І ще купа всього. Часто нам доводиться виводити нові формули, які ніколи не зустрічалися в літературі.

І, звичайно, ми повинні зав'язати функції з інтегралами, диференціальними рівняннями, сумами, інтегральними перетвореннями. Плюс FunctionExpand та FullSimplify і ще дуже багато всього. Виходить довгий перелік.

Найчастіше найскладніші моменти виникають у точках розгалуження функцій. Більшість безперервних спеціальних функцій визначаються неявно, зазвичай з диференціальних рівнянь. Тобто функція, як у випадку з квадратним рівнянням, наприклад, може мати кілька значень, які відповідають різним областям її риманової поверхні.

Щоб вибрати правильну функцію, необхідно вибрати основну область. Тим самим зашити розриви та прибрати розгалуження, так би мовити. А уявлення цих розривів та розгалужень у символьному вигляді – дуже непросте заняття. Навіть для елементарних функцій. Ось, наприклад, позбавлена ​​розгалужень версія формули .

Цьому не навчають у школі. І, власне, ми вивели її досить недавно. Однак для того, щоб символьні маніпуляції в комплексній області були коректними, потрібно скористатися нею.

Що ж, ми проробили велику роботу у сфері спеціальних функцій у Mathematica. З алгоритмами. Формули. І ось наш сайт Wolfram Functions Site. Величезна кількість людино-годин та всіляких продуманих автоматизацій були помножені на всі ті знання про спеціальні функції, що є у світі.

Думаю, у нас вийшло. Важко отримати якусь кількісну оцінку, проте те, що з цими функціями тепер так само просто працювати, як із синусом та косінусом, зробило їх, на мій погляд, значно популярнішими. Вони перестали бути якоюсь дивиною, про яку мало хто чув. Тепер їх будь-хто може отримати за допомогою онлайн-інтегратора(На даний момент сервіс застарів і його функціонал повністю покривається Wolfram | Alpha, прим. ред.). Вони більше не подібні до якихось рудиментів математики. Вони створені бути простими та корисними.

Що ж, я обіцяв розповісти про майбутнє спеціальних функцій. Цікаво простежити деякі тенденції. Є безліч спеціальних функцій, які завжди у моді. Як Безселеві чи ортогональні багаточлени. А є, наприклад, полілогарифми, які перебували в тіні тривалий час, однак набули популярності в деяких окремих додатках. А є й спеціальні функції, які й досі мало кому відомі. Як трансцендентні функції Пенльові. Їм уже понад сотню років. Про них люди іноді питають у Mathematica.

Ну, у розробці Mathematica, ми часто порушуємо питання про майбутнє спеціальних функцій. Які функції та в яких напрямках виявляться корисними та затребуваними? На опрацювання деяких з них буде витрачена велика кількість зусиль, проте їхня доля буде такою ж, як і гудерманіан.

Проте одна тенденція, у якій не обійшлося без участі Mathematica, очевидно - отримувати нові функції з дискретних різницевих рівнянь точно так, як і з безперервних диференціальних рівнянь. Тобто за допомогою RSolve та Sum замість DSolve та Integrate. Звичайно, як і з багатьма іншими ідеями, в цьому немає нічого нового. Джордж Буль у 1859-му та у 1860-му році відповідно опублікував роботи - з диференціальних рівнянь та з кінцевих різниць: A Treatise on Differential Equationsі A Treatise on the Calculus of Finite Differences. Для п'ятої версії Mathematicaми підняли результати його робіт та алгоритмізували їх.

Що ж, з погляду Буля та Беббіджа, відповідь не буде вважатися рішенням, якщо вона представлена ​​не у вигляді комбінації елементарних функцій. Але ми можемо спокійно використовувати дискретні спеціальні функції. І я не здивуюсь, що якщо ми їх правильно поставимо, то виявимо, що вони вже розглядалися у 17-му столітті.

Роздуми про все це наводять на думки про якусь більш загальну теорію спеціальних функцій. Щось подібне до нового фундаменту, нових основ.

Якісна картина: ще з часів Вавилона спеціальні функції були свого роду центрами тяжіння математичних обчисленнях. У нескінченному морі можливих функцій є якірними точками. Функції з кількома аргументами, які можуть бути використані як примітиви у різних обчисленнях.

Тут простежується аналогія з вбудованими функціями Wolfram Language (Mathematica). Є весь той простір можливих обчислень, які люди хотіли б здійснювати. І наша робота у проектуванні Mathematicaполягає в тому, щоб задати найбільш вдалі примітиви, з яких будуть обчислення.

Так чим спеціальні функції такі хороші? Підійдемо до цього питання з практичного погляду. Якими спеціальними функціями ми найчастіше користуємось? Мабуть, як Mathematica, так і сайт Wolfram Functions найкраще зможуть відповісти на це запитання.

Ось кілька фактів. По-перше, більшість спеціальних функцій містять невелику кількість аргументів. Найчастіше – два. У старих таблицях в основному наводилися функції з одним аргументом і іноді з двома. Тому вони були дуже незручними.

Звичайно, зараз у нас уже немає тих обмежень, що діяли тоді. Але зі збільшенням кількості аргументів у функції зростає кількість спеціальних областей, розривів та іншого. Важко все це відстежити, а найчастіше втрачається цілісність того, що колись було певною спеціальною функцією.

Можна поставити інше питання: як і з чим може бути пов'язана якась конкретна спеціальна функція? Через які її співвідношення можна висловити? Як її можна пов'язати з іншими функціями чи із самою собою? Що ж, це питання можна відповісти навіть кількісно з Wolfram Functions Site. Ось повна матриця того, які функції мають зв'язки, представлені на Wolfram Functions Site.

А ось таблиця найбільш пов'язаних функцій представлена ​​в Google-pagerank-стилі.

А ось граф, що відображає чотири найбільш популярні посилання від кожної функції.

Можна було б думати, що чим більше відносин функція має, тим вона корисніша. Однак Гамма функція, яка є однією з найбільш широко використовуваних, має не так і багато зв'язків з іншими функціями. Тоді як функція Вейештраса, Про яку не можна сказати подібне, має набагато більше зв'язків. А Дзета-функція взагалі стоїть окремо.

Отже, давайте тепер розглянемо ретельніше безперервні спеціальні функції, які ми зазвичай використовуємо. З початку використання обчислення статечні ряди були одним з основних способів, за допомогою якого можна розглядати функції. І, дійсно, по суті всі спеціальні функції, які ми використовуємо, мають одну важливу особливістьу своєму статечному ряду - всі коефіцієнти раціональні. Отже коефіцієнт перед є деякою раціональною функцією від n. І це означає, що функції є гіпергеометричними. Вони можуть бути представлені через - узагальнені гіпергеометричні функції.

І певною мірою значення pі qдля якоїсь конкретної функціїкорелюють про те, наскільки екзотична ця функція. Ступінь (Power) числа відповідає (0,0). Тригонометричним та зворотним тригонометричним - (1,0). Функції помилок (Erf) – (1,1). BesselJ - (0,1). EllipticK – (2,1). А 6- jсимволу – (4,3). Але деякі функції, які ми використовуємо, не є гіпергеометричними. Подібно до функцій Матьє, наприклад.

Можливо, це і є відповідь: з якихось причин ті функції, які ми найчастіше використовуємо, мають раціональні ступеня у статечному розкладі, а спеціальні функції – це спосіб усе це структурувати. Однак, є простий спосіб показати, що насправді все не так просто.

Можна просто перерахувати всі можливі ряди з раціональними ступенями і поставити питання - яким функціям вони відповідають. Це легко зробити з Sum в Mathematica. Ось деякі результати:

Безумовно, є деяка комбінація гіпергеомеричних функцій. Але що примітно - наскільки близькі гамма-функція та група функцій Бесселя. Це практично чисті.

Виходить, є інший процес відбору, що видає стандартні спеціальні функції.

Ще одна важлива характеристика гіпергеометричних функцій полягає в тому, що вона може бути задана в диференціальній формі. Але інша думка: можливо, спеціальні функції є рішенням певного класу диференціальних рівнянь.

І це, безперечно, набагато ближче. Давайте просто уявимо, що ми, скажімо, перераховуємо диференціальні рівняння другого порядку, будуючи цілі поліноми з послідовностей цілих чисел, що стоять один за одним. Потім застосуємо DSolve. І ось результат.

Досить цікаво виходить. Лише з цього класу диференціальних рівнянь ми отримали так багато популярних спеціальних функцій. У певному сенсі це частина відповіді.

Однак це знов-таки лише частина відповіді. Подивіться на весь масив результатів DSolve. Є порожнечі. Діри - недоліки DSolve? Ні, далеко не завжди так. Часто це свідчить про наявність якихось спеціальних функцій, невідомих нам.

Немає нічого складного в тому, щоб встановити рівняння, з яких вони виходять. Навіть із допомогою інтегралів. Як, наприклад, інтеграл від Sin]. Можна припустити, що це буде досить проста спеціальна функція. Як і багато інших інтегралів від вкладених тригонометричних функцій. Проте ні. Щоб висловити його через спеціальні функції, Вам знадобиться набагато складніші гіпергеометричні функції від двох змінних.

Досить кумедно виходить. Integrate в Mathematicaдосить хороша, щоб упоратися з цим. Просто спробуйте різні інтеграли, і Ви побачите, де межі її можливостей під час роботи зі спеціальними функціями.

І ось досить фундаментальне питання: які види обчислень слід очікувати, щоб дати точні рішення в термінах спеціальних функцій? У теоретичній фізиці можна помітити таку негласну угоду, що те, що може називатися фізичним завданням, має вимагати серйозних зусиль для вирішення. Квантова хромодинаміка. Турбулентність у рідинах. Та що завгодно. І видаватимуть формули, які пояснюватимуть, що відбувається в системі.

І тому сенсі має вирішальне значення для самоідентифікації теоретичної фізики. Тобто все це має вражати пророчі теорії. Я маю на увазі, що щоб з'ясувати, що відбувається в задачі двох тіл для ідеальної планети, що обертається навколо зірки, комусь довелося б простежити кожне становище планети. Але теоретична фізика гордо каже йому, що це не потрібно робити. Вона просто пропонує скористатися однією формулою для отримання результату. Тим самим завдання пророцтва зводиться до обчислення формули.

Тож які межі цього підходу? Чи є просто питанням часу, коли з'являться формули для всього на світі?

У рамках традиційних фізики чи математики ці питання не порушуються. Але новий видНаука, яку я так довго розробляв, містить відповідь на це питання.

Варто пам'ятати, що один із його фундаментальних принципів – охоплення всіх можливих простих програм з усіма можливими системами правил. Традиційні точні науки сильно орієнтовані математику. Розмови ведуться лише про ті речі, які можуть бути сформульовані з термінології традиційних математичних конструкцій. Однак тепер – з новим видом науки – ми можемо охопити набагато більше. Ми можемо досліджувати весь обчислювальний всесвіт з усіма можливими типами основних правил.

І що ми зможемо там знайти? Гарним прикладомє моя улюблена колекція одновимірних клітинних автоматів. Ось вони, все їхнє безліч.

Багато хто робить досить прості речі. І видають ті самі структури. Або принаймні повторювані.

Спробуємо уявити, що ми можемо знайти формулу, щоб це зробити. За допомогою цього можна зрозуміти, наприклад, який колір у певної клітини буде на певному кроці.

Але що щодо цього хлопця? Мого улюбленого 30 правила?

Чи є формула, щоб визначити, що відбувається після деякої кількості ітерацій?

Чи для цього?

Не думаю.

Думаю, насправді такі системи за своєю суттю є обчислювально неприведеними.

Ми можемо розглядати таку систему, як 30 правило, як деякий процес обчислення. Якщо ми спробуємо передбачити, який результат вона нам видасть, то нам також потрібно буде виконати якісь обчислення. І певною мірою успіхи таких традиційних областей, як теоретична фізика, насправді були засновані на вирішенні якихось набагато складніших систем, ніж ті, які ми вивчаємо. Так що нам потрібно дати якесь визначення тому, що система робитиме, якщо у неї буде набагато менше обчислювальних можливостей, ніж їй потрібно.

Так, одна з основних ідей у ​​моїй книзі - те, що я називаю "Принципом обчислювальної еквівалентності". Цей принцип стверджує, що практично всі системи, поведінка яких не є простим, точно еквівалентні їх обчислювальної складності. Навіть незважаючи на те, що як наш мозок, так і наші математичні алгоритми можуть працювати з дуже складними правилами, вони не можуть проводити обчислення, які хоч трохи складніші, ніж, наприклад, те, що робить 30 правило. Тобто це означає, що поведінка 30-го правила є обчислювально неприведеним: ми не можемо пояснити, як поводитиметься система за допомогою якогось процесу, який є більш ефективним, ніж просте відтворення 30-го правила.

Таким чином ми ніколи не зможемо отримати якесь точне рішення для 30-го правила – скажімо, формулу, аргументами якої будуть координата клітини та крок, а вихід функції – колір клітини.

До речі, довести це можна, якщо довести обчислювальну універсальність 30-го правила, тобто, що за його допомогою можна проводити будь-які обчислення, емулювати будь-яку систему. І це спосіб зрозуміти, чому це правило не може мати точного рішення. До певної міри тому, що це рішення має бути будь-яким можливим обчисленням. Що означає, що воно не може бути якоюсь невеликою формулою.

Добре, що з цього випливає щодо спеціальних функцій? Ну, якщо ми зіткнемося з великими обсягами обчислювальної неприводності, то особливі функції нам особливо не допоможуть. Тому що для багатьох проблем просто не буде можливості скласти якусь формулу - не має значення, зі спеціальними функціями або з чим би там не було.

Одна з головних ідей моєї книги полягає в тому, що у обчислювальному світі різноманітних програм проблема обчислювальної неприводності вирішується дуже просто. А причина, через яку ми рідко з нею стикаємося у тому, що такі галузі знань, як теоретична фізика, спеціально уникають обчислювальної непривідності.

Однак у природі, особливо в таких областях, як біологія, можна зіткнутися з набагато ширшою вибіркою представників обчислювального всесвіту. Тобто там часто можна зустріти обчислювальну непривідність. Теоретичні науки не змогли особливо просунутися у цій сфері.

Добре, давайте тепер поглянемо на систему на кшталт 30-го правила, або, скажімо, на невелике рівняння у приватних похідних, яке я знайшов, досліджуючи простір усіх можливих подібних рівнянь.

То чому б не існувати якоїсь високорівневої спеціальної функції, яка б відображала, що відбувається в цих системах?

Звичайно, ми могли б просто встановити спеціальну функцію для 30-го правила. Або спеціальну функцію для цього УРПП. Але це свого роду обман. І шлях яким ми йдемо, дає нам зрозуміти, що спеціальна функція буде надто «спеціальною». Звичайно, чисто номінально це прискорило б використання 30-го правила чи цього УРПП. Але на цьому – все. Вона не буде подібно до функції Бесселя спливати в міріадах різних завдань. Вона буде лише вирішення саме цього завдання.

Спробуємо узагальнити сказане вище. Справа в тому, що коли є деяка область обчислювальної неприводності, існує і безліч окремих областей, де її можна уникнути. Сенс спеціальної функції, яка не буде марною, полягає в тому, що безліч різних проблем повинні легко зводитися до цієї спеціальної функції.

Виходить, що сфера всіх завдань, в яких немає обчислювальної неприводності, включає стандартні спеціальні функції гіпергеометричного виду. А що за межами цієї галузі? Думаю, там багато обчислювальної неприводності. І повно розрізненості. Так що не може з'явитися жодна нова чарівна спеціальна функція, яка відразу покриє безліч проблемних областей. Це трохи нагадує ситуацію із солітонами та подібними речами. Вони хороші у своїй області, проте дуже специфічні. Вони живуть у якійсь дуже вузькій області простору різноманітних завдань.

Добре, тому що більш загально сформулювати ці поняття?

Можна подумати про аналоги спеціальних функцій для багатьох різноманітних систем. Чи є якась обмежена безліч спеціальних об'єктів, які нехай і вимагатимуть якихось обчислень, але за допомогою яких можна буде отримати якісь інші корисні об'єкти?

Можна подумати про числа. Числа можуть бути «елементарними», раціональними, алгебраїчними. Але що тоді таке – корисні «спеціальні» числа? Звичайно, це , , і EulerGamma . Що щодо інших констант? Інші константи тьмяніють у тіні своїх більш відомих побратимів. Мабуть, на сайті Wolfram Functions не так багато прикладів, коли є якась константа, яка періодично спливає, але для якої немає імені.

[Запис виступу закінчується на цьому місці] У 10 версії Wolfram Language (Mathematica) вбудовані сотні спеціальних функцій.

Докладніше про них ви можете дізнатися тут:

  • Списки (за групами) спеціальних функцій, реалізованих у Wolfram Language (Mathematica)
  • Стаття документації щодо спеціальних функцій у Wolfram Language

Код створення поверхні, використаної в титульному зображенні

(nx, ny) = (Prime, Prime); (xMin, xMax) = (-8,5); (yMin, yMax) = (-3,3); [email protected]+BesselJ]),(x,xMin,xMax,N[(xMax-xMin)/nx]),(y,yMin,yMax,N[(yMax-yMin)/ny])],1]; gradient = Grad, (x, y)]; stream=StreamPlot),(y,yMin,yMax,N[(yMax-yMin)/7])],1],Automatic,Scaled)]; lines3D=Graphics3D[(Opacity,Thick,(Cases,Line[___],Infinity])/.(x_Real,y_Real):>(x,y,Abs]))]; Rasterize[#,ImageResolution->150] [email protected][(Plot3D,(x,xMin,xMax),(y,yMin,yMax),Mesh->0,MeshFunctions->(#3&),Filling->None,ColorFunction->Function[(x,y,z) ,ColorData["SunsetColors"][z]],ImageSize->800,Lighting->"Neutral",Boxed->False,AxesOrigin->(0,0,0),Axes->False,AxesLabel->(Style [#,20]&/@(Re[z],Im[z],Abs+BesselJ])),PlotPoints->150,PlotRange->(0,3),BoxRatios->(1.5,1,1/ 2),ViewPoint->(-1.64,-2.36,1.77),ViewVertical->(0,0,1)],lines3D)]

Додати теги

Сутність та класифікація функцій управління

Функції керування– це сукупність об'єктивно необхідних і повторюваних дій, об'єднаних однорідністю змісту і цільової спрямованості, дозволяють здійснювати управляючі впливу.

Функції управління є взаємозалежними елементами процесу управління і, отже, послідовність їх виконання необхідно розглядати як систему функціонального опису будь-якого процесу управління (виробництвом, маркетингом, розробками...)

Термін «функція» у перекладі з латинської означає «вчинення», «виконання», а значить діяльність менеджера не що інше як безперервний процес виконання управлінських функцій. При цьому будь-яка функція керування виконується в такому порядку:

Збір інформації;

Перетворення (обробка) інформації;

Прийняття рішення;

Надання рішенню необхідної форми;

Доведення до виконавця;

Контроль над виконанням.

Функції управління можна класифікувати за декількома ознаками, наприклад:

1. За рівнем управління.

Найвищого рівня – галузями, об'єднаннями, підприємствами;

Середній рівень – управління дивізіонами, відділеннями, цехами;

Низового рівня – управління дільницями, бригадами, групами.

На різних рівнях управління на перший план висуваються різні групифункцій. Так, у міру переміщення знизу вгору акцент зміщується у бік контролю, прогнозування. Чим нижчий рівень управління, тим більше значення набувають функцій організації обліку, регулювання.

В різних ситуаціях, різних рівнях управління ті чи інші функції менеджерів мають однакове значення, у зв'язку з чим у теорії управління сформувалася концепція «архетипів», тобто основних типів менеджерів. Так, розглядаючи функції менеджера з позиції рівнів управління, виділяється «ТОП-менеджмент», або вище керівництво. Основне його завдання полягає у виробленні загальної концепції, стандартів та цінностей, формуванні організаційної структури, підтримці контактів з контрагентами, управлінні кризовими ситуаціями тощо.

Функції вищого рівня складні, характеризуються новизною та різноманітністю, вимагають глибоких аналітичних здібностей, задатків дипломата, політика, оратора, тому «ТОП-менеджери» є першими серед рівних.

Роль керівників середнього рівня – керівництво та координація роботи керівників низового рівня. Цей рівень виконує роль "буфера" між керівниками вищого та низового рівнів. Вони готують інформацію для рішень, які приймаються на найвищому рівні і передають управлінчеські рішеннявниз, зазвичай, після трансформації в технологічно прийнятні форми, як конкретних завдань.



Керівники низового рівня виконують функції керівництва діяльністю виконавців. На них лежить відповідальність поточного, щоденного управління виробництвом.

2. За складністю.

Комплексні, пов'язані з великими, самостійними об'єктами

управління (кадри, основне виробництво...);

Приватні, поодинокі функції, пов'язані з рішенням окремих,

закінчених проміжних дій (прийом на роботу, оформлення

наряду…).

Спеціалізовані;

Забезпечують.

3.2. Загальні функції управління

Загальні функції – це групи робіт, які виконуються під час управління будь-якими об'єктами, всіх рівнях управління виробництвом. Загальні функції відображають типові елементи управлінської праціз урахуванням послідовності виконання робіт (з урахуванням чинника часу).

Загальні функції поділяються на такі групи робіт:

1) прогнозування, 2) планування, 3) організація, 4) контроль,

5) регулювання (координація); 6) облік, аналіз, звітність.

Прогнозуванняпередбачає виявлення альтернативних умов, у яких може бути система у майбутньому (на 5 -10 і більше років наперед), ймовірність появи цих умов, можливі варіанти поведінки системи у умовах. Наприклад, для підприємства: технічний розвиток, зміна спеціалізації та номенклатури продукції, попит на цю продукцію та обсяги виробництва, темпи їх зростання тощо.

На підставі прогнозування здійснюють планування діяльності системи: визначають цілі системи та шляхи їх досягнення, становлять план дії (що робити, хто робитиме, коли і якими ресурсами). Іншими словами, план – це модель стану системи у певний період часу.

Плануванняділиться на два великі етапи: техніко-економічне та оперативне. Техніко-економічне планування охоплює всі сфери діяльності підприємства (ринок збуту, виробництво, матеріально-технічне постачання, кадри, фінанси тощо) та передбачає розробку перспективних планів (на 5 - 10 років) та поточних (на рік, квартал, місяць ). Оперативнепланування пов'язане з ходом самого виробництва (процесами виготовлення виробів), охоплює невеликі періоди часу (квартал, місяць, добу, зміну) та тісно переплітається з роботами з контролю та регулювання (диспетчування) ходу виробництва. Оперативне управління поширюється на підготовку виробництва, матеріально-технічне постачання, контроль якості та інші види забезпечення виробництва.

Щоб система діяла, її необхідно організувати. Організація- Це:

Створення системи (проектування та створення структури як об'єкта

управління, і самої керуючої підсистеми);

Забезпечення умов дії системи, постачання всім

необхідним для роботи (матеріалами, кадрами, фінансами тощо);

Вдосконалення системи.

Система діє згідно з планами, стандартами, технічним умовам, технологічним картам. У процесі роботи виконується контроль, що дозволяє виявити відхилення від нормального режиму функціонування об'єкта, перевірити дійсний перебіг робіт. Наприклад, контроль за ходом виконання виробничої програми, контроль за витратою матеріалів, за використанням обладнання, якістю продукції і т.д.

Якщо контроль показує відхилення від запланованого перебігу робіт, виконується регулювання з метою усунення відхилень, а також попередження їх у майбутньому. Регулювання включає в себе ряд типових операцій: аналіз виникаючих відхилень і причин, що їх викликають, усунення відхилень, розробка заходів щодо їх попередження.

Облік- Це фіксація та аналіз інформації про стан об'єкта управління. Облік поділяється на поточний(оперативний), статистичнийі бухгалтерський.Результати обліку та аналізу використовуються у плануванні наступних циклів виробництва.

На малюнку 5.1 зображено схему, комплексно розкриває зміст загальних функцій управління.

Таким чином, загальні функції відображають у часі безперервні процеси управління, починаючи з прогнозування та закінчуючи обліком та аналізом дії будь-яких об'єктів. Ці функції виконуються незалежно від масштабу та характеру виробництва, принципово єдині усім рівнях управління. Однак конкретний зміст цих функцій, безумовно, залежить від об'єкта управління. Наприклад, функція планування виконується у процесі управління будь-якими об'єктами, всіх рівнях, але зміст планів (показники, методи їх розрахунку, форми документів) залежить від конкретних об'єктів (підприємство, цех чи ділянку, фази виробництва, види ресурсів тощо.) . Тобто загальні функції тісно переплітаються із спеціалізованими функціями управління виробництвом.

Спеціалізовані функції управління виникли внаслідок поділу управлінської праці. Вони включають різні видидіяльності, що відрізняються призначенням та способом реалізації.

Спеціалізовані функції управління пов'язані з усіма напрямками діяльності підприємства. Вони повинні охоплювати:

Усі сфери життєвого циклупродукції: дослідження та проектування-

ня, виготовлення, збут та експлуатацію;

Усі фази виробничого «обороту»;

Усі етапи руху виробничих ресурсів (формування,

використання у процесі виробництва, відновлення втрачених

властивостей, вибуття чи утилізація);

Усі періоди планування;

Усі рівні організаційної структури підприємства, аж до окремих

ного робочого місця.

Спеціалізовані функції пов'язані, перш за все, з фазами «обороту» та ресурсами виробництва (трудовими, матеріальними, фінансовими): управління технічною підготовкою виробництва (конструкторською та технологічною), управління основним виробництвом, службами забезпечення та обслуговування (інструментальним, ремонтним, енергетичним та іншими господарствами) ), управління матеріально-технічним постачанням, маркетингом та збутом продукції, кадрами, фінансами тощо.

Спеціалізовані функції здійснюються за допомогою всіх загальних функцій управління та в комплексі з ними представляють складну багаторівневу систему. Зміст спеціалізованих функцій у спеціальних дисциплінах (операційний менеджмент, інноваційний менеджмент, управління проектами тощо.).

3.4. Функції забезпечення процесів керування

Забезпечення управління є комплексним та включає: правове забезпечення, інформаційне забезпечення та організацію нормативного господарства, діловодство, технологічне забезпечення та оснащення процесів управління, організацію управлінської праці, удосконалення процесів управління. Ці функції становлять внутрішній зміст процесів управління, тобто є функціями самозабезпечення, саморегулювання, самовдосконалення.

Правове (юридичне) забезпечення: облік в управлінській діяльності державних законів, постанов уряду, нормативних документів; правове регулювання виробничих відносин; виконання вимог трудового законодавства; правовий захист діяльності підприємства від конкурентів, у роботі з постачальниками та споживачами, ведення претензійної роботи; юридична експертиза договорів, стандартів підприємства тощо.

Інформаційне забезпечення: мета його – своєчасне уявлення органам управління інформації, необхідної для прийняття рішень; розподіл її між керівниками, окремими підрозділами та виконавцями відповідно до їх участі в управлінні.

Управління інформаційним забезпеченням включає:

Проектування інформаційних потоків: визначення джерел

та споживачів інформації, складу необхідної інформації, періодичності її циркуляції та форм подання, підбір технічних засобів, встановлення порядку складання, оформлення реєстрації, погодження та затвердження документів;

Організацію потоків інформації: збирання, зберігання, оновлення, переробка, передача інформації;

Створення та ведення нормативно-довідкової бази.

Діловодство– тісно пов'язане з інформаційним забезпеченням: організація документообігу зовнішнього та внутрішнього (прийом документації, реєстрація її, облік, розподіл та доставка виконавцям); виготовлення та розмноження документів; організація архівного господарства

Технологічне та технічне забезпечення– пов'язано з проектуванням процесів управління та оснащенням їх технічними засобами, механізацією та автоматизацією управлінських робіт. Важливою проблемою є також організація управлінської праці (оснащення та постачання робочих місць, забезпечення нормальних та безпечних умов праці, ритмічної роботи).

Удосконалення керуючої підсистеми

Однією з функцій управління є проектування та вдосконалення самої підсистеми, що управляє. Напрями вдосконалення різні: зміна складу та обсягів функцій, зміна ступеня централізації та децентралізації функцій, вдосконалення організаційної структури управління, механізація та автоматизація управлінської праці тощо.

Всі ми знаємо функцію printf() PHP та її сімейство. Ці функції корисні, але іноді вони не забезпечують достатньої функціональності. Крім цього, додавання форматуючих рядків printf() не є безпечним.

PHP додає власні функції, подібні printf , для заміни libc . В основному вони додають нові формати, використовують zend_string замість char* і таке інше. Давайте розглянемо їх разом.

Примітка

Ці функції додані для заміни libc. Якщо ви використовуєте sprintf (), наприклад, викликана буде не sprintf () бібліотеки libc , а функція, що заміщає PHP . Крім традиційної printf(), все інше замінюється.

Традиційне використання

Ви не повинні використовувати sprintf () , тому що ця функція не виконує жодних перевірок та викликає безліч помилок переповнення буфера.

Ви знаєте розмір буфера результату

Якщо ви знаєте розмір буфера, snprintf() або slprintf() виконають роботу за вас. Ці функції відрізняються тим, що вони повертають, але не тим, що вони роблять.

Обидві функції виконують виведення відповідно до переданих форматів, і обидві завершують буфер за допомогою NUL-байта », що б не сталося. Але snprintf() повертає кількість символів, які можна використовувати. slprintf () повертає кількість символів, які були використані, що дозволяє виявляти надто маленькі буфери та усічення рядків без урахування кінцевого символу» .

Ось приклад, з якого стає зрозуміло printf sprintf PHP відмінність:

char foo; /* великий буфер із 8 символів */ const char str = "Hello world"; /* 12 символів, включаючи */ int r; r = snprintf(foo, sizeof(foo), "%s", str); /* r = 11 тут, навіть якщо тільки 7 друкованих символів були записані в foo */ /* Значення foo тепер "H" "e" "l" "l" "o" " " "w" "" */

Функція snprintf () не надійна під час використання, оскільки не дозволяє виявити можливе усічення рядка.
Як видно з наведеного вище прикладу, Hello world 0 не поміщається у восьмибайтовий буфер. Це очевидно, але snprintf() все одно повертає 11, що є strlen(«Hello world»). Таким чином, ви не зможете виявити, що рядок усічено.

Ось приклад використання slprintf() замість printf PHP:

char foo; /* великий буфер із 8 символів */ const char str = "Hello world"; /* 12 символів, включаючи */ int r; r = slprintf(foo, sizeof(foo), "%s", str); /* r = 7 тут, тому що 7 друкованих символів були записані в foo */ /* Значення foo тепер "H" "e" "l" "l" "o" " " "w" "" */

При використанні функції slprintf () буфер результату foo містить той самий рядок, але значення, що повертається тепер дорівнює 7 . Це менше, ніж 11 символів з рядка Hello world, тому можна виявити, що вона була усічена:

if (slprintf(foo, sizeof(foo), "%s", str)< strlen(str)) { /* Произошло усечение строки */ }

Пам'ятайте:

  • Ці дві функції завжди завершують рядок з NULL, з усіченням або без. Кінцеві стоки є безпечними рядками C;
  • Тільки slprintf() дозволяє виявити усічення рядків.

Ці дві функції визначені у main/snprintf.c

Ви не знаєте розмір буфера

Якщо не знаєте розмір кінцевого буфера, тоді вам потрібен буфер, що виділяється динамічно, а потім необхідно використовувати функцію sprintf () . Помнете, що вам доведеться звільняти буфер самостійно!

Ось приклад :

#include char *result; int r; time_t timestamp = time(NULL); r = spprintf(&result, 0, "Here is the date: %s", asctime(localtime(×tamp))); /* тепер використовуємо результат, який містить щось на кшталт "Here is the date: Thu Jun 15 19:12:51 2017n" */ efree(result);

Функція spprintf ( на відміну від PHP printf) повертає кількість символів, які були поміщені в кінцевий буфер, не рахуючи фінального символу «», тому ви знаєте кількість виділених байтів (мінус один).

Зауважте, що виділення пам'яті виконується за допомогою ZendMM ( виділення на запит) і тому має використовуватися як частина запиту та звільнятися за допомогою efree(), а не free().

Якщо хочете обмежити розмір буфера, то ви передаєте це обмеження як другий аргумент. Якщо ви передасте 0, то ліміту немає:

#include char *result; int r; time_t timestamp = time(NULL); /* Не виводьте більше 10 байт або виділяйте більше 11 байт*/ r = spprintf(&result, 10, "Here is the date: %s", asctime(localtime(×tamp))); /* r == 10 тут і 11 байт було виділено під результат*/ efree(result);

Примітка

Намагайтеся не використовувати динамічний розподіл пам'яті. Воно впливає на продуктивність. Краще використовуйте буфер, виділений із статичного стеку.

Функція spprintf () знаходиться в main/spprintf.c.

А що щодо printf()?

Якщо потрібна функція printf PHP , або іншими словами відформатований вивід у потік, використовуйте php_printf() .

Ця функція використовується всередині spprintf() і виконує динамічне виділення пам'яті, яку звільняє відразу після відправки на вихід SAPI , stdout у випадку CLI або у вихідний буфер (буфер CGI, наприклад) для інших SAPI.

Спеціальні формати printf у PHP

Пам'ятайте, що PHP замінює більшість функцій printf() бібліотеки libc своїми власними реалізаціями. Можна подивитися API аналізу аргументів, який легко зрозуміти, прочитавши вихідний код.

Це означає, що алгоритм аналізу аргументів був повністю переписаний і може відрізнятися від того, якого ви звикли в libc . Наприклад, мовне налаштування libc враховується здебільшого.

Можуть використовуватися спеціальні формати, наприклад «%I64», для прямого друку в int64 або «%I32». Також можна використовувати %Z, щоб зробити zval друкуваним ( відповідно до правил приведення PHP до рядків), що є чудовим доповненням.

Засіб форматування також розпізнає нескінченні числа і надрукує INF або NAN для нечислового значення.

Якщо ви припуститеся помилки і спробуєте вивести вказівник NULL ( у цьому випадку libc аварійно завершилася б), то PHP поверне null як результуючий рядок.

Примітка

Якщо в PHP printf ви бачите чарівне null , це означає, що ви передали вказівник NULL в одну з функцій сімейства printf .

Друкувати в zend_string

Оскільки zend_string –поширена структура в PHP-коді, вам може знадобитися виведення у zend_string замість традиційного масиву C char*. Для цього скористайтеся функцією strpprintf() .

API функції: zend_string *strpprintf ( size_t max_len, const char * format, …). Це означає, що повертається zend_string , а чи не кількість друкованих символів. Можна обмежити це число, використовуючи перший параметр ( передача значення 0 означає нескінченне число). При цьому необхідно пам'ятати, що zend_string буде виділено за допомогою Zend Memory Manager і, отже, прив'язаний до запиту.

Очевидно, що API використовується спільно з тим, що був наведений вище.

Ось приклад :

zend_string *result; result = strpprintf(0, "Ви використовуєте PHP %s", PHP_VERSION); /* Робимо щось із результатом */ zend_string_release(result);

Примітка з zend_ API

Ви можете зустріти функції zend_spprintf() або zend_strpprintf(). Це те саме, що було описано вище. Просто у статті вони наведені як частина поділу між Zend Engine та PHP Core.

Переклад статті « PHP's custom printf functions» був підготовлений дружньою командою проекту.

Завантаження...
Top