Кіріспе

Автоматты механикалық калькулятор
Уильям Гибсон мен Брюс Стерлингтің романы

Айырмалы қозғалтқыш – полиномдық функцияларды кестелеуге арналған автоматты механикалық калькулятор. Ол 1820 жылдары жобаланды және алғаш рет Чарльз Бэббидж жасады. "Айырмалы қозғалтқыш" атауы бөлінген айырмашылықтар әдісінен туындаған, функцияларды интерполяциялау немесе кестелеу үшін полиномдық коэффициенттердің шағын жиынтығын пайдалану тәсілі. Инженерлік, ғылыми және навигациялық салаларда жиі қолданылатын логарифмдік және тригонометриялық функциялар полиномдар арқылы жуықтауға болатындықтан, айырмалы қозғалтқыш көптеген пайдалы кестелерді есептеуге қабілетті.

Тарих

Математикалық функцияларға арналған механикалық есептегіш машина туралы түсінік б.з.б. 2 ғасырындағы Антикитера механизміне дейін жетеді, ал оның алғашқы мысалдары 17 ғасырда Паскаль мен Лейбницке байланысты. 1784 жылы Гессен армиясының инженері Й.Х. Мюллер қосу машинасының жобасын жасап, құрастырды және 1786 жылы жарық көрген кітабында айырма машинасының негізгі қағидаларын сипаттады (айырма машинасы туралы алғашқы жазбаша мағлұмат 1784 жылға датыланады), бірақ оның бұл идеяны дамытуға қаражат алуға мүмкіндігі болмады.

Чарльз Бэббидждің айырмашылық қозғалтқыштары

Чарльз Бэббидж 1819 жылы шағын айырмалы есептеу машинасының құрастырылуын бастады және оны 1822 жылы аяқтады (Айырмалы есептеу машинасы 0). Ол өзінің өнертабысын 1822 жылғы 14 маусымда «Астрономиялық және математикалық кестелерді есептеуге машиналарды қолдану туралы хабарлама» деген тақырыпта Корольдік астрономиялық қоғамға ұсынған мақаласында жариялады. Бұл машина ондық санау жүйесін пайдаланды және тұтқаны айналдыру арқылы жұмыс істеді. Британ үкіметі мүдделі болды, себебі кестелерді жасау уақытты көп алатын және қымбат болды, сондай-ақ, айырмалы есептеу машинасы бұл жұмысты тиімдірек етеді деп үміттенеді. 1823 жылы британ үкіметі Бэббиджге жобаны бастау үшін 1700 фунт стерлинг берді. Бэббиджтің жобасы мүмкін болғанымен, сол заманғы металл өңдеу технологиясы қажетті дәлдікте және көлемде бөлшектерді экономикалық жағдаймен жасауға мүмкіндік бермеді. Осылайша, іске асыру үкіметтің алғашқы бағалауынан әлдеқайда қымбатқа түсті және сәттілікке жете алмайтын көрінді. 1830 жылғы Айырмалы есептеу машинасы №1 жобасына сәйкес, оның шамамен 25 000 бөлігі болар еді, салмағы 4 тонна, ал 20 таңбалы сандарды алтыншы дәрежелі айырмалар арқылы өңдейтін еді. 1832 жылы Бэббидж және Джозеф Клемент жұмыс істейтін шағын модель (жоспардың жетіден бірі) жасады, ал леди Байрон 1833 жылы жұмыс істейтін прототипті көргенін айтты: «Біз екеуміз өткен дүйсенбіде «ойлайтын машинаны» (деп көрінеді) көруге бардық. Ол бірнеше сандарды 2-ші және 3-ші дәрежеге көтеріп, квадрат теңдеудің түбірін шығарды». Үлкен машинадағы жұмыс 1833 жылы тоқтатылды. Үкімет 1842 жылы жобадан бас тартқан кезде Бэббидж 17 000 фунт стерлингтен астам ақша алған және оны дамытуға жұмсаған, бірақ бұл жұмыс істейтін машинаны жасауға жеткіліксіз болды. Үкімет машинаның өзінің дамуын емес (болжамсыз шығындармен), оның нәтижесін – экономикалық тұрғыдан тиімді кестелерді бағалады. Бэббидж бұл жағдайды мойындағысы келмеді. Бэббидж одан әрі оның көптеген мүмкіндіктері бар талдау машинасының жобасын жасады, бірақ кейіннен жақсартылған «Айырмалы есептеу машинасы №2» жобасын жасады (31 таңбалы сан және жетінші дәрежелі айырмалар).

Шэутциандық есептеу машинасы

1834 жылы Бэббидждің айырмашылық есептегішінде шабыттанған Пер Георг Шейц бірнеше тәжірибелік үлгілер жасады. 1837 жылы оның ұлы Эдвард металдан жұмыс істейтін үлгі құрастыруды ұсынды, ал 1840 жылы 5 таңбалы сандар мен бірінші дәрежелі айырмашылықтар қатарын есептеуге қабілетті есептеу бөлігін аяқтады, кейіннен ол үшінші дәрежеге дейін жетілдірілді (1842). 1843 жылы баспа бөлігі қосылғаннан кейін үлгі аяқталды. 1851 жылы үкімет қаржылағаннан кейін үлкен және жақсартылған (15 таңбалы сандар және төртінші дәрежелі айырмашылықтар) машинаның құрылысы басталды және 1853 жылы аяқталды. 1855 жылы Париждегі Әлемдік көрмеде көрсетілді, ал 1856 жылы Нью-Йорк штатының Олбани қаласындағы Дадли обсерваториясына сатылды. 1857 жылы жеткізілген бұл машина – сатылған алғашқы баспа калькуляторы болды. Оның құрылысы бұрынғысына ұқсас, салмағы шамамен .

Басқалар

Мартин Виберг Шейцтің құрылымын жақсартты (шамамен 1859 жылы, оның машинасы Шейцтің машинасымен бірдей мүмкіндіктерге ие: 15 цифрлы және төртінші дәрежелі). Бірақ ол құрылғысын тек баспа кестелерін жасау және жариялау үшін пайдаланды (1860 жылы пайыздық кестелер, 1875 жылы логарифмдік кестелер). Лондондағы Альфред Дикон шамамен 1862 жылы кішкентай айырмашылықтық есептеу машинасы жасады (20 цифрлы сандар және үшінші дәрежелі айырмашылықтар). Америкалық Джордж Б. Грант 1869 жылы Бэббидж және Шейцтің (Шенц) жұмыстарын білмей, өз есептеу машинасының жұмысын бастады. Бір жылдан кейін (1870) ол айырмашылықтық есептеу машиналары туралы біліп, өзі жобалауға кірісті және 1871 жылы құрылысын сипаттады. 1874 жылы Бостонның бейсенбілік клубы 1876 жылы салынған үлкен модельдің құрылысы үшін қаражат жинады. Оны дәлдігін арттыру үшін кеңейтуге болады және салмағы шамамен алғанда… Христель Хаманн 1909 жылы бір машина жасады (16 цифрлы сандар және екінші дәрежелі айырмашылықтар), ол "Баушингер мен Петерстің кестелері" ("Сегіз ондық таңбасы бар логарифмдік тригонометриялық кестелер") үшін қолданылды, алғаш рет 1910 жылы Лейпцигте жарияланды. Оның салмағы шамамен… 1912 жылы Burroughs Corporation теңізшілердің альманахи кеңсесі үшін екінші дәрежелі айырмашылықтық есептеу машинасы жасады. Кейін 1929 жылы ол Burroughs Class 11 машинасымен ауыстырылды (13 цифрлы сандар және екінші дәрежелі айырмашылықтар немесе 11 цифрлы сандар және кемінде бесінші дәрежелі айырмашылықтар). Александр Джон Томпсон шамамен 1927 жылы "Logarithmetica britannica" логарифмдер кестесі үшін интегралдау және дифференциалдау машинасы жасады (13 цифрлы сандар және бесінші дәрежелі айырмашылықтар). Бұл машина төрт өзгертілген Triumphator калькуляторынан құралды. 1928 жылы Лесли Комри Брунсвига Дупла есептеу машинасының екінші дәрежелі айырмашылықтық есептеу машинасы ретінде қалай пайдалануға болатынын сипаттады (15 цифрлы сандар). Бұл жұмыс 1985 жылдан 1991 жылға дейін Дорон Свайдтың басшылығымен Ғылым мұражайына No. 2 айырмашылықтық есептеу машинасының жұмыс істейтін бөлімін жасауға әкелді. Бұл Бэббидждің 1991 жылы туғанына 200 жыл толуын мерекелеу үшін жасалды. 2002 жылы Бэббидж бастапқыда айырмашылықтық есептеу машинасы үшін жобалаған принтер де аяқталды. Бастапқы жобалық сызбаларды инженерлік өндіріс үшін жарамды сызбаларға айналдыру Бэббиджтің жобасындағы кейбір ұсақ қателерді (жоспарлар ұрланған жағдайда қорғаныс үшін енгізілген болуы мүмкін) анықтады, оларды түзету қажет болды. Айырмашылықтық есептеу машинасы мен принтер 19 ғасырдың технологиясымен қол жетімді дәлдікпен жасалды, бұл Бэббиджтің жобасы грузин дәуіріндегі инженерлік әдістерді қолдану арқылы жұмыс істей ала ма деген ұзақ пікірталасты шешті. Машина 8000 бөліктен тұрады және салмағы шамамен 5 тонна. Принтердің негізгі мақсаты – баспа машиналарында пайдалануға арналған стереотиптік пластиналарды жасау, ол жұмсақ гипске басып, фланг жасау арқылы орындайды. Бэббидж машинаның нәтижелерін тікелей жаппай басып шығаруға жеткізуді көздеді, өйткені бұрынғы кестелердегі көптеген қателер адамның есептеу қатесінен емес, қолмен жинау процесіндегі қателерден туындады. Содан бері ол Сиэтлдегі Intellectual Ventures компаниясына берілді, онда ол негізгі вестибюльдің сыртында қойылған.

Операция

Дифференциалдық есептеу машинасы 1-ден N-ге дейін нөмірленген бірнеше бағаннан тұрады. Машина әр бағанда бір ондық санды сақтай алады. Машина тек n+1 бағанының мәнін n бағанына қосып, n бағанының жаңа мәнін шығара алады. N бағаны тек тұрақты мәнді сақтайды, ал 1 бағаны ағымдағы итерациядағы есептеу нәтижесін көрсетеді (немесе басып шығарады). Машина бағандарға бастапқы мәндер берілу арқылы бағдарламаланады. 1-бағанға есептеу басталғандағы полиномның мәні қойылады. 2-бағанға полиномның бірінші және жоғары ретті туындыларынан, X-тің сол мәні үшін алынған мән орнатылады. 3-тен N-ге дейінгі бағандардың әрқайсысына полиномның бірінші және жоғары ретті туындыларынан алынған мән орнатылады.

Уақыт

Бэббидж дизайнында негізгі білік әрбір айналымында бір итерация (яғни қосу және көшіру операцияларының толық жиынтығы) жүзеге асады. Бір циклде тақ және жұп бағандар кезекпен қосу операциясын орындайды. Сондықтан, баған үшін операциялардың тізбегі былай:

Деривативтерді пайдалану

Көптеген жиі қолданылатын функциялар – аналитикалық функциялар, оларды қуат қатары түрінде, мысалы Тейлор қатары түрінде көрсетуге болады. Бастапқы мәндерді кез келген дәрежеде дәлдікпен есептеуге болады; егер дұрыс орындалса, механизм алғашқы N қадам үшін нақты нәтиже береді. Одан кейін механизм функцияның жуықтауын ғана береді. Тейлор қатары функцияны бір нүктедегі туындыларының қосындысы ретінде көрсетеді. Көптеген функциялар үшін жоғары туындыларды алу оңай; мысалы, 0-дегі синус функциясының барлық туындылары 0-ге тең. Есептеудің бастамасы ретінде 0-ді орнатсақ, біз жеңілдетілген Маклорен қатарын аламыз. Коэффициенттерден бастапқы мәндерді есептеудің сол әдісін полиномдық функциялар үшін қолдануға болады. Полиномдық тұрақты коэффициенттер енді келесі мәнге ие болады.

Бұрыштық орнату

Жоғарыда сипатталған әдістердің кемшілігі - қателер жинақталып, тізбек нақты функциядан алшақтап кетеді. Тұрақты ең жоғары қатеге кепілдік беретін шешім – қисыққа сәйкестендіруді қолдану. Қажетті есептеулер диапазоны бойынша тең аралықта N мәннің кеміндегісі есептеледі. Гаусс азайтуы сияқты қисыққа сәйкестендіру әдісін пайдаланып, функцияның N−1 дәрежелі полиномдық интерполяциясы табылады. Оптимизацияланған полином арқылы бастапқы мәндер жоғарыда аталғандай есептелуі мүмкін.