§ 28. Виды вычислений в пакете SMath Studio

28.2. Численное решение уравнений и систем

В пакете SMath Studio численные решения уравнений и систем получают с помощью специальных функций.

solve(U(x);x) — функция пакета SMath Studio, которая находит все действительные корни уравнения на интервале (–20; 20). Здесь U(x) — обозначает уравнение, x — имя переменной в уравнении.

Если корней несколько, то функция показывает их как вертикальный список в скобках. Например,

Такой список называется вектором и является аналогом линейного массива в языках программирования (пример 28.4).

Если уравнение действительных корней не имеет, то формула обрамляется красной рамкой и под ней появляется надпись «Действительных корней нет».

roots(S;Z;Zo) — функция пакета SMath Studio, которая находит одно численное решение системы в форме вектора. Здесь S — запись системы в форме вектора, Z — вектор переменных системы, Zo —  вектор начального приближения, который является примерной оценкой решения системы. В векторе S число компонент задается числом уравнений в системе. В векторах Z и Zo число компонент задается числом переменных.

Если система имеет несколько решений, то функция ищет решение, ближайшее к Zo. Если решения системы сильно отличаются от Zo, то функция roots() может решение не найти и вывести сообщение «Действительных корней нет».

В SMath Studio векторы создаются при помощи шаблона матрицы. Матрица — это подобие таблицы без разделительных линий. Например,

Шаблон матрицы, который вызы­вается щелчком по кнопке  Матрица на па­нели Матрицы. Появляется диалоговое окно.

В диалоговом окне сразу щелкаем по кнопке Вставить, так как задавать размеры удобнее другим способом. На лист выводится шаблон размером 3х3, который надо изменить.

 

Нажатие клавиши Пробел приводит к появлению рамки с угловым маркером, который и позволяет изменять шаблон. Размеры шаблона изменяются аккуратным перетаскиванием маркера указателем мыши (пример 28.5). 

Пример 28.4. Решим уравнение

  x2 + 5x – 4 = 0  

Вводим на рабочий лист пакета символы solve(, появляется метка-заполнитель для аргумента функции и вторая скобка. Вводим уравнение, в котором знак равенства вводится с клавиатуры комбинацией Ctrl + = или щелчком по кнопке  Булево «равно» на панели Булева.

Далее вводим ; и второй аргумент x.

Теперь вводим оператор численного вычисления (=), пакет выводит 2 корня, ввод завершаем и получаем.

 Пример 28.5. Решим систему уравнений

Составим вектор S для заданной системы, в которой два уравнения. Вводим символы S:= ,  а затем вводим шаблон матрицы и меняем его размеры, чтобы получить один столбец с двумя элементами.

Щелчками мыши и клавишами-стрелками Вправо / Влево выбираем метки-заполнители и вводим уравнения (знак равенства — Ctrl + =).

Вводим вектор переменных Z и вектор начального приближения Zo с двумя компонентами, так как в системе две переменных. Введем компонентами вектора Zo две единицы.


Далее вводим функцию roots() с аргументами.

Затем вводим оператор численного вы­числения (=). Получаем

Копируем Zo и roots() и выводим их ниже. Меняем компоненты Zo на 1 и —1.

Копируем Zo и roots() и выводим их ни­же. Меняем компоненты Zo на —1 и —1.

Снова копируем. Меняем компоненты Zo на —1 и 1 и получаем уже известное решение. В итоге получили два решения системы.

Для систем двух линейных уравнений с двумя переменными пакет всегда находит единственное решение, если оно есть, и в записи функции roots() можно не указывать аргумент Zo.