Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Операции с формулами и выражениями



Для манипуляций с формулами и выражениями служат следующие функции системы.

cost( x1, x2,...,xn ) – вычисляет количество операций, участвующих в численной эволюции указанных алгебраических выражений, учитываются операции сложения, умножения, деления, обращения к функциям и другие. Перед использованием этой функции ее необходимо загрузить командой readlib(cost).

normal( f ), normal( f, expanded) – нормализация алгебраического выражения f. Эта функция упрощает выражения, включающие суммы, произведения и целочисленные степени переменных. Выражения приводятся к виду числитель/знаменатель, где числитель и знаменатель – неприводимые многочлены с целочисленными коэффициентами. Если f задано в виде списка, множества, диапазона, разложения в ряд, уравнения или функции, то функция normal применяется рекурсивно к компонентам f. Если второй операнд не задан, то числитель и знаменатель получаются в виде произведений многочленов. Если указан второй операнд, то числитель и знаменатель будут записаны одним многочленом.

radnormal( expr ) – упрощение выражения expr, содержащих не только квадратные корни, но и радикалы других степеней;

numer( e ), denom( e ) – выделение числителя и знаменателя алгебраического выражения e. Обычно перед использованием этих функций указанное выражение нормализуют функцией normal. Если выражение не было нормализовано, то перед выделением числителя или знаменателя оно приводится к виду числитель/знаменатель.

factor( a ), factor( a, K ), Factor ( a, K ) – факторизация алгебраического выражения а. Цель факторизации – разложить выражение на максимальное число независимых множителей, линейных по заданным переменным, с коэффициентами наиболее простой формы. Эта функция не раскладывает на множители целые числа, для этих целей следует использовать функцию ifactor. Если второй параметр не задан, то факторизация осуществляется над полем, определяемым коэффициентами самого выражения. Например, если все коэффициенты – целые числа, то будут отыскиваться множители с целыми коэффициентами. Параметр К может задавать дополнительные условия факторизации. Инертная форма Factor( a, K ) раскрывается функцией evala(... ).

collect( a, x ) или collect( a, x, form, func ) – приведение подобных членов в выражении а при степенях переменной х. Параметр form может принимать значение recursive (по умолчанию) – рекурсивная форма или distributed –дистрибутивная форма. Параметры form и func – необязательные.

expand( expr, expr1, expr2,..., exprn ) или Expand( expr ) – раскрытие скобок в произвольном алгебраическом выражении expr, возможно, с заданными дополнительными параметрами. Инертная форма Expand( expr ) раскрывается функцией evala(... ).

combine( f, n ) – преобразование выражения или списка выражений f, включая приведение подобных членов, объединение показателей степенных функций, преобразование тригонометрических и некоторых других функций. Эта функция к компонентам списков, наборов и соотношений применяется рекурсивно, то есть f и n могут быть списками, наборами выражений и имен соответственно. Необязательный параметр n может принимать значения exp, ln, power, trig, Psi, polylog, radical, abs, signum, plus, atatsign, conjugate, plot, product, range. Для многих функций преобразования выражений, осуществляемые функцией combine обратны соответственным преобразованиям, осуществляемым функцией expand.

ifactor( n ) или ifactor( n, method ) - целочисленное разложение на множители целого или рационального числа n, с, возможно, заданием имени основного метода для разложения на множители. Эта функция возвращает полное целочисленное разложение на множители числа n в виде (f1) e1...(fn) en. По умолчанию используется алгоритм Морисона-Бриларда. Кроме этого могут использоваться следующие алгоритмы и соответствующие им значения второго параметра: 'squfof' – алгоритм Д.Шанка, 'pollard' – метод Полларда, 'lenstra' - метод Ленстра, 'easy' – режим, при котором из числа выделяются простые множители, а остаток записывается в виде _C.m, где m – количество десятичных цифр числа, которое не удалось разложить на множители.

lhs( eqn ) - выделение левой части из уравнения eqn;

rhs( eqn ) - выделение правой части из уравнения eqn;

isolate( eqn, expr ) - определение выражения expr из уравнения eqn. Перед использованием команды isolate ее необходимо загрузить командой readlib( isolate );

trigsubs( expr ) или trigsubs( s ) или trigsubs( s, expr ) – выдача всех тригонометрических эквивалентов выражения expr или уравнения s. Перед использованием этой функции её необходимо загрузить командой readlib(trigsubs). Обращение trigsubs(0) – с параметром 0 – возвращает набор функций, известных процедуре: {cos, cot, csc, sec, sin, tan}. Обращение с одиночным тригонометрическим выражением expr возвращает список тригонометрических выражений, эквивалентных expr. Обращение с одиночным уравнением, представленным тригонометрическим тождеством, возвращает ответ `found` или `not found` в зависимости от того найдено или не найдено соответствие в тождестве. Если кроме уравнения задан второй параметр – выражение expr, – то тождество s вначале проверяется на соответствие, а затем применяется к выражению. В случае обнаружения ошибок выдаётся сообщение.

simplify( expr,<opt1>,<opt2>,<opt3>,…,<optn> ) - упрощение выражения expr согласно заданным опциям <optn> (exp, ln, power, radical, sqrt, trig, RootOf, и др.);

subs( old_1 = new_1,.., old_n = new_n,expr ) - подстановка new_n вместо old_n в выражении expr;

Примеры:

> readlib(cost): a:= x+x^2+x^3+x^4:

> cost( a );

3 additions + 6 multiplications

> b:=x*(1+x+x^2+x^3): cost( b );

3 additions + 4 multiplications

> normal( (g(x)^2-1)/(g(x)-1) );

g(x) + 1

> (4+3*3^(2/3)+3*3^(1/3))^(1/3)=

radnormal ((4+3*3^(2/3)+3*3^(1/3))^(1/3));

> numer( 2/3 );

> denom( 2/3 );

> numer( 2/x + y );

2 + y x

> factor( 6*x^2+18*x-24 );

6 (x + 4) (x - 1)

> f:= a*ln(x)-ln(x)*x-x;

f:= a ln(x) - ln(x) x - x

> collect( f, ln( x ));

(a - x) ln(x) - x

> expand( (x+1)*(y+z) );

x y + x z + y + z

> expand(sin( x+y ));

sin(x) cos(y) + cos(x) sin(y)

> combine( 4* sin( x ) ^3 ,trig);

-sin(3 x) + 3 sin(x)

> combine(exp( x ) ^2* exp( y ),exp);

exp(2 x + y)

> ifactor( 60 );

> ifactor( 4/11 );

> n:= 8012940887713968000041:

> ifactor( n, easy);

(13) (457) _c19

> ifactor( n );

(13) (457) (2847639359) (473638939)

> eq:=a+b=c;

eq:= a + b = c

> lhs( eq );

a + b

> rhs( eq );

c

Эти же команды используются для выделения границ диапазона, задаваемого оператором диапазона i..j:

> lhs( 2..5 );rhs( 2..5 );

> readlib(isolate): isolate( y-3*x-5,y );

y = 3 x + 5

Вычислим , зная, что :

> readlib(trigsubs): trigsubs(cos( x ) ^2 ): q:= convert( %, lis t ):

> subs(cos( x/2 ) =1/4,q[6] );

Вычислим , зная, что :

> convert(cos( 4*x ) ^2 ,tan);

> subs(tan( 2*x ) =5 ,%);





Дата публикования: 2014-11-29; Прочитано: 374 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...