Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая информатика.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
671 Кб
Скачать
☆

Определение функций

Для определения функции следует указать ее имя, аргумент (или аргументы), заключенный в круглые скобки, символы := и саму функцию, например,

C1) p(x):= x^2+3*x-8;

2

(D1) p(x) := x + 3 x - 8

(C2) p(2*x);

2

(D2) 4 x + 6 x - 8

(C3) factor(p(2*x-4));

2

(D3) 2 (2 x - 5 x - 2)

(C4) f(x):=sin(x);

(D4) f(x) := SIN(x)

(C5) g(x):=log(x);

(D5) g(x) := LOG(x)

(C6) f(g(x));

(D6) SIN(LOG(x))

(C7) g(f(x));

(D7) LOG(SIN(x))

(C8) dist(x,y):=sqrt(x^2+y^2);

2 2

(D8) dist(x, y) := SQRT(x + y )

(C9) dist(3,4);

(D9) 5

Функция может быть задана и подобным образом:

(C10) eta(x,y):= if x = y then x

else (if x > y then x-y else x+y);

(D10) eta(x, y) := IF x = y THEN x ELSE

(IF x > y THEN x - y ELSE x + y)

(C11) eta(5,6);

(D11) 11

(C12) eta(eta(7,7), eta(1,2));

(D12) 4

Построение графиков

Графики строятся при помощи функции plot2d, например,

(C1) plot2d([2*sin(x), cos(x)], [x, -2*%PI, 2*%PI]);

увеличить изображение

Для построения изображений трехмерных объектов используется функция plot3d. Вот как, например, запишется функция для рисования листа Мебиуса:

(C2) plot3d([cos(x)*(3+y*cos(x/2)),

sin(x)*(3+y*cos(x/2)), y*sin(x/2)],

[x,-%pi,%pi],[y,-1,1],['grid,40,15]);

В левом верхнем углу рисунка находится меню (появляющееся при подведении курсора). Оно содержит ряд опций для сохранения рисунка и его преобразований. Ниже приводятся два рисунка, соответствующие рассматриваемой с разных точек римановой поверхности.

(C3) Plot3d(r^.33*cos(th/3),[r,0,1],[th,0,6*%pi],

['grid,12,80],

['transform_xy,polar_to_xy],

['view_direction,1,1,1.4],

['colour_z,true]);

Операции математического анализа

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

Для нахождения производной используется функция diff, первым аргументом которой является функция, вторым - переменная, по которой производится дифференцирование, и третьим (необязательным) - порядок производной:

(C1) f:(x-2*sqrt(x))/x^2;

x - 2 SQRT(x)

(D1) -------------

2

x

(C2) diff(f, x);

1

1 - -------

SQRT(x) 2 (x - 2 SQRT(x))

(D2) ----------- - -----------------

2 3

x x

(C3) expand("c2);

3 1

(D3) ---- - --

5/2 2

x x

(C4) g:x^6;

6

(D4) x

(C5) diff(g, x, 1);

5

(D5) 6 x

(C6) diff(g, x, 4);

2

(D6) 360 x

При вычислении кратных производных по нескольким переменным после указания функции перечисляются переменные дифференцирования с указанием соответствующих кратностей, например,

(C7) diff(x^6*y^3, x, 4, y, 2);

2

(D7) 2160 x y

Функция integrate позволяет вычислять интегралы. Для нахождения неопределенного интеграла после функции указывается единственный аргумент - переменная интегрирования:

(C8) f:x^2/(4*x^6+1);

2

x

(D8) --------

6

4 x + 1

(C9) integrate(f, x);

3

ATAN(2 x )

(D9) ----------

6

Maxima в случае неоднозначного ответа может задавать дополнительные вопросы, как в следующем примере:

(C10) integrate(x^n,x);

Is n + 1 zero or nonzero?

nonzero;

n + 1

x

(D10) ------

n + 1

(C11) integrate(x^n,x);

Is n + 1 zero or nonzero?

zero;

(D11) LOG(x)

Можно использовать функцию assume для задания дополнительных условий (не забывайте затем удалить наложенные ограничения):

(C12) assume(notequal(n,-1));

(D12) [NOT EQUAL(n, - 1)]

(C13) integrate(x^n,x);

n + 1

x

(D13) ------

n + 1

(C14) forget(notequal(n,-1));

(D14) [NOT EQUAL(n, - 1)]

(C15) integrate(x^n,x);

Is n + 1 zero or nonzero?

zero;

(D15) LOG(x)

Для нахождения определенного интеграла следует указать дополнительные агрументы - пределы интегрирования:

(C16) integrate(x^2, x, 0, 6);

(D16) 72

(C17) integrate(sin(x), x, 0, %PI);

(D17) 2

(C18) integrate(integrate(x*y, x, 1, 3), y, 0, 4);

(D18) 32

Maxima допускает задание и бесконечных пределов интегрирования. Для обозначения бесконечности используется переменная INF (inf):

(C19) integrate(1/x^2, x, 1, inf);

(D19) 1

(C20) integrate(1/(1+x^2), x, -inf, inf);

(D20) %PI

(C21) integrate(1/x, x, 0, inf);

Integral is divergent - an error.

Quitting. To debug this try DEBUGMODE(TRUE);)

В последнем примере система сообщила о невозможности вычисления интеграла, т. к. он расходится (is divergent).

При вычислении достаточно сложных интегралов ответ не всегда будет представлен в наиболее простом виде. В следующем примере Maxima не может в символьном виде получить ответ, равный PI/4:

C22) g:1/sqrt(2-x^2);

1

(D22) ------------

2

SQRT(2 - x )

(C23) integrate(g,x, 0,1);

SQRT(2)

(D23) ASIN(-------)

2

Для вычисления конечных и бесконечных сумм следует записать сумму в символьном виде, после чего упростить полученное выражение:

(C24) sum(1/n^2,n,1,inf);

INF

====

\ 1

(D24) > --

/ 2

==== n

n = 1

(C25) %,simpsum;

2

%PI

(D25) ----

6

Maxima способна находить разложение функций в ряд Тейлора. Получим многочлен Тейлора порядка 4 для функции f(x)=ln x в точке x=1:

(C26) g:log(x);

(D26) LOG(x)

(C27) taylor(g,x,1,4);

2 3 4

(x - 1) (x - 1) (x - 1)

(D27)/T/ x - 1 - -------- + -------- - -------- + ...

2 3 4

Для вычисления пределов используется функция limit:

(C28) limit(1/x,x,inf);

(D28) 0

Для вычисления односторонних пределов используется дополнительный параметр, принимающий значение plus для вычисления предела справа и minus - слева.

Пример

Исследуем на непрерывность функцию arctg(1/(x-4)). Эта функция не определена в точке x = 4. Вычислим пределы справа и слева:

(C28) limit(atan(1/(x-4)), x, 4, plus);

%PI

(D28) ---

2

(C29) limit(atan(1/(x-4)), x, 4, minus);

%PI

(D29) - ---

2

Как видим, точка x = 4 является точкой разрыва I рода для данной функции, так как существуют пределы слева и справа, равные -PI/2 и PI/2 соответственно.

Задания

  1. Вычислите первую производную функции tg2(x4 - 2)

  2. Найдите предел при x -> 0 функции (3x - sin x)/tg 2x

  3. Найдите одну из первообразных функции cos2 x