Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Практическая информатика
  3. Глава 8 Системы компьютерной алгебры
  4. Maxima

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

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)

Для вычисления односторонних пределов используется дополнительный параметр, принимающий значение 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.

Перекрёстные ссылки книги для Операции математического анализа

  • Построение графиков
  • Вверх
  • Матричные вычисления

Book navigation

  • Содержание
  • Глава 1 Основы информатики
  • Глава 2 Операционные системы и сети
  • Глава 3 Графика на компьютере
  • Глава 4 Обработка текста
  • Глава 5 Основы языка HTML
  • Глава 6 Динамический HTML
  • Глава 7 Простейшие вычисления
  • Глава 8 Системы компьютерной алгебры
    • Mathematica
    • Maxima
      • Работа с выражениями
      • Алгебраические преобразования
      • Решение уравнений
      • Определение функций
      • Построение графиков
      • Операции математического анализа
      • Матричные вычисления
      • Программирование в системе Maxima
  • Глава 9 Модели и программирование
  • Глава 10 Логическое программирование
  • Глава 11 Введение в ООП
  • Глава 12 Программирование и интернет

Последние материалы

  • Эмулятор терминала Terminator
    4 hours ago
  • Приложение scanimage
    6 days 1 hour ago
  • Утилита sensors
    1 week 2 days ago
  • Сканер Rkhunter
    2 weeks 3 days ago
  • Программа resize2fs
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru