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

Main navigation

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

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

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

Уравнения и неравенства

Mathematica включает в себя средства поиска корней различных типов уравнений и систем. Чаще всего для этих целей используется функция Solve[eqn, var], где eqn - уравнение или система, задаваемая списком уравнений, var - переменная или список переменных, которые требуется определить. Результат вычислений - список корней (возможно пустой).

Палитра Basic Calculations в разделе Algebra содержит несколько шаблонов для ввода функции Solve (пункт Solving Equations). Обратите внимание, что левая и правые части уравнения соединяются символами ==, например,

Solve[3 x + 9 == 0, x]
Solve[x^2 + 2b*x + c == 0, x]
Solve[x^2 + 1 == 0, x]
Solve[{x==1+2a*y, y==9+2x}, 
 {x,y}] 

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

Программа позволяет также решать логарифмические и показательные уравнения. Натуральные логарифмы задаются функцией Log, а логарифмы по произвольному основанию n - в виде Log[n, expr], где expr - аргумент логарифмической функции, например, Log[2, 1024]. Для Эйлеровой константы (основания натурального логарифма) используется обозначение E.


Пример
Следующий фрагмент демонстрирует решение уравнения :

In[12]:= Solve[Log[Sqrt[x]]==Sqrt[Log[x]], x]
Out[12]= {{x -> 1}, {x -> E^4}}

Для решения неравенств предварительно следует подключить дополнительный модуль расширения Algebra:

<

Имя функции, решающей неравенства, совпадает с названием подпакета - InequalitySolve. Для задания неравенств используют знаки > (строго больше), >= (больше или равно), < (строго меньше) и <= (меньше или равно), например,

In[13]:= InequalitySolve[x^2-1<0,x]
Out[13]= -1=0,x]
Out[14]= x<-1 || x==0 || x>1

In[15]:= InequalitySolve[(2x-1)/(4(x+1))-1

При решении неравенств, отличных от дробно-рациональных, система выдает предупреждение о возможном некорректном решении:

In[16]:= InequalitySolve[2^(x^2)>16,x]
InequalitySolve::"npi": "A nonpolynomial equation
 or inequality encountered. The solution
 set may be incorrect."
Out[16]= x<-2 || x>2

В тех случаях, когда невозможно решить заданное уравнение аналитически, можно приближенно вычислить значение корня следующим образом. Сначала при помощи функции Plot строются графики левой и правой частей уравнения и по рисунку находится первое приближение x0. Затем для уточнения значения корня применяется функция FindRoot. Если L(x) и R(x) - соответственно левая и правая части уравнения, x - искомый корень, а x0 - его приближенное значение, определенное с помощью графика, то функция для поиска корня имеет вид:

FindRoot[L(x)==R(x), {x,x0}]


Пример

 

Найдем приближенное решение уравнения ex=x2. Построим графики функций ex и x2, выполнив команду Plot[{Exp[x], x^2}, {x, -1, 1}].

Мы получим изображение графиков функций ex и x2 на одном чертеже для значений аргумента x, изменяющегося на отрезке [-1,1].

Глядя на графики, видим, что в качестве начального приближения может быть взято значение x0 = -0.5.

Для уточнения решения нашего уравнения воспользуемся командой FindRoot[Exp[x]==x^2, {x, -0.5}] и получим приближенное значение корня x = -0.703467. Если требуется большая точность (но не более 16 знаков после запятой), то можно воспользоваться функцией N. Так, выполнив команду N[FindRoot[Exp[x]==x^2, {x, -0.5}], 16], мы получим приближенное значение корня с точностью до 16 знаков после запятой: x = -0.7034674295409824.


Пример
Как правило, тригонометрические уравнения имеют бесконечно много решений, поэтому можно указывать различные начальные приближения и получать приближенные значения разных корней уравнения. Так, выполнив команду FindRoot[Sin[x^2]==0, {x, 2}], найдем x = 1.77245, а изменив начальное приближение с 2.0 на 3.0, с помощью команды FindRoot[Sin[x^2]==0, {x, 3}] получим приближенное значение другого корня уравнения, а именно x=3.06998.


Задания

  1. Решите системы уравнений:
    1) 2)
  2. Решите неравенства:
    1) ; 2) .
  3. Найдите приближенно наименьший положительный корень уравнения 1/x2=5 cos x.
  4. Найдите с точностью 12 знаков после запятой все корни уравнения (1 - x)/(x4 + 1) = sin x, принадлежащие отрезку [-1,4].

Перекрёстные ссылки книги для Уравнения и неравенства

  • Графика
  • Вверх
  • Пределы и ряды

Book navigation

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

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

  • Приложение Zoom
    4 days ago
  • Команда restore
    2 weeks ago
  • Файл sudoers
    3 weeks 1 day ago
  • Утилита visudo
    3 weeks 2 days ago
  • Файловый менеджер Thunar
    1 month ago
RSS feed

Secondary menu

  • О проекте

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