Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAPLE.doc
Скачиваний:
221
Добавлен:
24.03.2015
Размер:
1.52 Mб
Скачать

23. Решение функциональных, рекуррентных и др. Уравнений. Функция RootOf. Функция RootOf

В решениях уравнений нередко появляется функция RootOf, означающая, что корни нельзя выразить в радикалах. Эта функция применяется и самостоятельно в виде RootOf(expr) или RootOf(expr, х), где expr — алгебраическое выражение или равенство, х — имя переменной, относительно которой ищется решение. Если переменная х не указана, ищется универсальное решение по переменной _Z. Когда expr задано не в виде равенства, решается уравнение expr=0. Для получения решений вида RootOf в явном виде может использоваться функция allvalues.

Примеры применения функции RootOf (файл RootOf):

> RootOf(х^2+1=0,х);

RootOf (_Z² + 1)

> allvalues(%);

I, -I

> RootOf(а*b^2+а/b,b);

RootOf(_Z³ + 1)

> allvalues(%);

-1, ½ +½I√3, ½-½I√3

> RootOf(x^3-1,x) mod 7;

RootOf(_Z³ + 6)

> allvalues(%);

-6(1/3), ½6(1/3) - ½I√3 6(1/3), ½6(1/3) + ½I√3 6(1/3)

> evalf(%);

-1.817120593, .9085602965-1.573672596 I, .908560296+1.573672596 I

> RootOf(х^2-2*х+1,х) mod 5;

1

Итак, функция RootOf является эффективным способом представления решения в компактном виде. Как уже отмечалось, наряду с самостоятельным применением она часто встречается в составе результатов решения нелинейных уравнений.

Решение функциональных уравнений

Решение функционального уравнения, содержащего в составе равенства некоторую функцию f(х), заключается в нахождении этой функции. Для этого можно использовать функцию solve, что демонстрируют приведенные ниже примеры (файл solvefe):

> A:=solve(f(х)^2-х+1,f);

А := proc(x) RootOf(_Z^ 2 -х + 1, label =_L7) end proc

> convert(A(x),radical);

> allvalues(%);

> B:=solve(f(x)*x=ln(x^2),f);

В := proc(x) ln(x^2)/x end proc

> convert(B(x),radical);

> C:=solve(f(x)*х^2=а*х^2+b*х+с, f);

C := proc(x) (ax×x^2 + bx×x + c)/x^2 end proc

> convert(C(x),radical);

Решение рекуррентных уравнений — 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. Но только по форме, а не по сути.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]