|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Решение рекуррентных уравнений — rsolveФункция solve имеет ряд родственных функций. Одну из таких функций — fsolve — мы рассмотрели выше. В справочной системе Maple можно найти ряд и других функций, например rsolve для решения рекуррентных уравнений, isolve для решения целочисленных уравнений, msolve для решения по модулю m и т.д. Здесь мы рассмотрим решение уравнений важного класса — рекуррентных. Напомним, что это такие уравнения, у которых заданный шаг решения находится по одному или нескольким предшествующим шагам. Для решения рекуррентных уравнений используется функция rsolve: rsolve(eqns, fens) rsolve{eqns, fens, 'genfunc'(z)) rsolve(eqns, fens, 'makeproc') Здесь eqns — одиночное уравнение или система уравнений, fens — функция, имя функции или множество имен функций, z — имя, генерирующее функциональную переменную. Ниже представлены примеры применения функции rsolve (файл rsolve): > restart; > rsolve(f(n)=-2*f(n-1)-f(n-2), f(k)); (-f(0) -f(1))(k + 1)(-1)k +(f(1) +2f(0))(-1)k > rsolve({f(n)=-3*f(n-1)-2*f(n-2),f(1..2)=1), {f}); {f(w) = -3(-1)n +(-2)n} > rsolve({y(n)=n*y(n-1), y(0)=1),y); Г(n + 1) > rsolve((y(n)*y(n-1)+y(n)-y(n-1)=0,у(0)=a},y); > rsolve({F(n)=F(n-1)+F(n-2),F(1..2)=1),F, 'genfunc'(x)); > rsolve({y(n+1)+f(n)=2*2^n+n, f(n+1)-y(n)=n-2^n+3, y(k=1..5)=2^k-1,f(5)=6), {y, f}); {f(n)=n+1, y(n) = 2n - 1} А теперь приведем результат вычисления функцией rsolve n-го числа Фибоначчи. Оно задается следующим выражением: > eq1:= (f(n+2) = f(n+1) + f(n), f(0) = 1, f(1) = 1}; eq1:= {f(n+2) = f(n+1)+f(n), f(0) = 1, f(1) = 1} В нем задана рекуррентная формула для числа Фибоначчи — каждое новое число равно сумме двух предыдущих чисел, причем нулевое и первое числа равны 1. С помощью функции rsolve в Maple 9.5 можно получить поистине ошеломляющий результат: > a1:=rsolve(eq1, f); Числа Фибоначчи — целые числа. Поэтому представленный результат выглядит как весьма сомнительный. Но на самом деле он точный и с его помощью можно получить числа Фибоначчи (убедитесь в этом сами). Любопытно отметить, что решение в Maple8 заметно отличается от приведенного выше для Maple 9.5. Но только по форме, а не по сути. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |