§ 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. |