Решить систему уравнений в scilab

Сопромат .in.ua

изучаем сопротивление материалов

Некоторые варианты решения системы уравнений

Решение online

На странице “Решение системы линейных уравнений“ вы можете решить систему до 10 уравнений online.

Решение системы линейных алгебраических уравнений в OpenOffice.org

Из линейной алгебры нам известно, что для системы линейных уравнений A*x=b решением 1 есть x=A -1 *b, если детерминант матрицы A не равен нулю. Здесь A -1 – обратная матрица коэффициентов СЛАУ .

Решим систему из двух уравнений.

В ячейках (A1:B2) вводим данные.
Детерминант матрицы: MDETERM(A1:B2)

Затем получаем обратную мартицу A -1 :
=

Умножаем полученную обратную матрицу на столбик з правою частью систем уравнений:
=

Осталось проверить проверить правильность решения, подставив полученные неизвестные в систему уравнений.

Пример решения системы линейных уравнений в Scilab

Scilab — мощный открытый пакет прикладных математических программ (система компьютерной математики) для инженерных и научных расчётов.

  • решать задачи линейной алгебры;
  • решать нелинейные уравнения и системы;
  • решать задачи оптимизации;
  • дифференцировать и интегрировать;
  • решать обыкновенные дифференциальные уравнения и системы.
  • обрабатывать экспериментальные данные (интерполяция и аппроксимация, метод наименьших квадратов);
  • создавать различные виды графиков и поверхностей.

Более подробно с пакетом можно ознакомится на домашней странице Scilab или в википедии

Пример

Решим систему из двух уравнений вида A*x=b

Задаем матрицу коэффициентов: —>A=[1,2;3,4] A = 1. 2. 3. 4. Задаем вектор свободных коэффициентов: —>b=[2;1] b = 2. 1.

Определяем детерминант матрицы: —>det(A) ans = — 2 Так как определитель матрицы отличен от нуля, решение СЛАУ существует.

Решение СЛАУ методом обратной матрицы —>x=A\b x = — 3. 2.5 Запись A\b соответствует математической операции A -1 b. Записи x=A\b эквивалентна запись x=inv(A)*b

Эту систему уравнений также можно решить с помощью специальной функции linsolve (эта функция решает уравнение вида Ax+b=0, поэтому поменяем знак вектора b) x=linsolve(A,-b) x = — 3. 2.5 и получили ответ: x0= -3; x1= 2.5;

Проверяем A*x-b ans = 1.0D-14 * 0.2220446 0.3552714 результирующий вектор близок к нулю, то есть система решена верно.
Существуют и другие способы решения системы линейных уравнений в среде Scilab.

Пример решения системы линейных уравнений в среде программирования R

R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом.

Пример

Решаем систему Ax=b (из двух уравнений)

A A [,1] [,2] [1,] 1 2 [2,] 3 4 > b b [1] 2 1 > x x [1] -3.0 2.5 и получили ответ: x1= -3; x2= 2.5;

Проверка: > A %*% x [,1] [1,] 2 [2,] 1

Определитель матрицы: > det(A) [1] -2

Решение системы линейных уравнений Ax=b в Euler Math Toolbox

Домашняя страница Euler Math Toolbox . В пакет интегрирована система компьютерной алгебры Maxima. Система напоминает Matlab, но имеет собственный стиль, и немного иной синтаксис.
Домашняя страница автора René Grothmann

Пример

This is Euler Math Toolbox, Version 5.8. >A:=[1,2;3,4] 1 2 3 4 >b:=[2;1] 2 1 >x:=A\b -3 2.5 Получили ответ: x0= -3; x1= 2.5;

Определитель матрицы: >det(A) -2

Проверка: умножим A на x (операция умножения обозначается точкой «.») >A.x 2 1

Решить указанную систему можно также с помощью следующего выражения (inv(A) — обратная матрица) >x:=inv(A).b -3 2.5

1 Этот способ решения называется — решение СЛАУ методом обратной матрицы

Учебное пособие Москва 2008 Тропин И. С., Михайлова О. И., Михайлов А. В. Т 742

Главная > Документ

Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

Решение систем линейных уравнений

Рассмотрим решение системы из трех уравнений с тремя неизвестными переменными :

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

Для нашего примера система будет выглядеть следующим образом:

Для решения подобных систем уравнений в Scilab существует функция linsolve . Обращение к ней выглядит следующим образом:

K — таблица, составленная из коэффициентов уравнений системы (см. пп 7.1.2), причем она сформирована таким образом, что каждая строка представляет собой список коэффициентов одного из уравнений системы, а каждый столбец — список коэффициентов при одноименных переменных, то есть если первым элементом в первой строке является коэффициент при y , то первыми элементами других строк также должны быть коэффициенты при y в соответствующих уравнениях.

K= .

Для решаемой системы:

K= .

k — столбец, содержащий свободные (стоящие после знака «=») коэффициенты.

Примечание: при задании в Scilab k должен быть именно столбцом , поэтому перечисление переменных нужно делать через «;» (см. пп. 7.1.1).

k= .

Для решаемой системы

.

После того как элементы списков K и k определены, приступим к решению системы в Scilab (Листинг 42).

Зададим таблицу коэффициентов при неизвестных переменных.

Зададим столбец независимых коэффициентов.

Решим уравнение при помощи функции linsolve (результат решения в данном случае присваивается переменной «reshenie»).

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

Задания для самоконтроля:

Решить системы уравнений:

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

Scilab содержит набор функций для графического представления информации. Для построения графиков функции одной переменной, например, служат функции plot и polarplot . Первая — позволяет строить графики в декартовых координатах, вторая — изображает графики в полярных координатах. Обе эти функции требуют предварительного определения списка значений аргумента и списка соответствующих значений функции, график которой необходимо построит. Списки аргументов и значений функции указываются первым и вторым аргументами при вызове plot и polarplot . Ниже подробнее будет рассмотрено использование функции plot . Она же может использоваться для построения графиков в полярных координатах, используя очевидную связь между декартовыми и полярными координатами.

Функция plot

Функция plot предназначена для построения двумерных графиков функции одной переменной вида f=f ( x ) .

Обращение к функции plot выглядит следующим образом:

где x — список значений независимой переменной, а y — список значений функции f в этих точках. Соответственно для того, чтобы построить график в Scilab, необходимо создать список значений переменной и список значений функции в этих точках.

График, построенный при помощи функции plot , представляет собой ломаную линию, соединяющую значения функции, вычисленные в заданных точках. Следовательно, чтобы получить гладкий график, необходимо вычислить значение функции в большом количестве точек.

Рассмотрим пример построения графика функции sin 2 (2 x ) (Листинг 43).

Список x получает значения от до с шагом 0.01.

Список y содержит значения функции для каждого элемента в x.

В результате обращения к функции plot открылось окно графического редактора Scilab, содержащее график функции (рис. 3).


Рис. 3. Графическое окно Scilab

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

При последующем обращении к функции plot в текущем сеансе график будет построен в том же окне и линия будет того же цвета, что и у предыдущего графика. Для построения нескольких графиков в одной области удобнее использовать обращение к функции plot следующего вида: plot(x1,y1,x2,y2,x3,y3) , где x 1— список значений переменной x, в которых должно быть вычислено значение функции f 1= y 1( x ), x2 — список значений переменной x, в которых должно быть вычислено значение функции f 2= y 2( x ), и т.д. Если построение происходит в одной области, в качестве х1, х2, х3 может выступать один и тот же список.

Построим в одной области графики функций: f 1=sin( x ); f 2=cos( x ); f 3=(Листинг 44).

В данном случае список х является списком аргументов для всех трех функций.

Результат работы функции plot , обращение к которой содержит Листинг 44, можно видеть на рис. 4.


Рис. 4. Графическое окно Scilab

Как видно, графики функций в данном случае автоматически изображаются разными цветами.

Вид графика можно изменять, добавив при обращении к функции plot помимо основных аргументов еще один аргумент — строку, состоящую из трех символов, которые будут определять цвет линии, тип маркера и тип линии графика. Обращение к функции plot будет выглядеть: plot(x,y,string) , в случае, если необходимо построить один график, или plot(x1,y1,string1,x2,y2,string2,x3,y3,string3. xn,yn,stringn) — для n графиков.

Строка string выглядит следующим образом

Символы пишутся один за другим без разделителей.

Параметр1 определяет цвет линии графика:

Значения параметра функции plot, определяющего цвет графика

Параметр2 определяет тип маркера графика:

Значение параметра, определяющего тип маркеров (точек) графика

треугольник вершиной вниз

треугольник вершиной вверх

треугольник вершиной вправо

Параметр 3 определяет тип линии графика:

Значения параметра, определяющего тип линии графика

Если один из символов не указан, его значение выбирается по умолчанию, при неуказанном типе маркера — маркер будет отсутствовать.

Построим 3 графика на отрезке :

f 1 (x)=x 2 — пунктирная линия желтого цвета;

f 2 (x)= 1 +x —штриховая линия голубого цвета;

f 3 (x)=e x —сплошная линия черного цвета.

Решение (Листинг 45):

Зададим список точек c именем x , в которых будут вычислены значения функций.

Вычислим значения функции f 1 в точках списка x.

Вычислим значения функции f 2 в точках списка x .

Вычислим значения функции f 3 в точках списка x .

Построим по вычисленным значениям графики функций с заданными параметрами (см. табл. 11.1 и 11.3).

В результате выполнения команд, приведенных в Листинге 45, в графическом окне Scilab будут построены графики функций f 3( x ) , f 2( x ) , f 1( x ) (рис. 5).

Рис. 5. Графическое окно Scilab

Изображение сетки в графической области

Для изображения сетки следует воспользоваться функцией xgrid(color) . Color — аргумент функции, он определяет цвет линий сетки. Общий вид аргумента: a 1 a 2 a 3 , где каждый из параметров а 1 , а 2 и а 3 может принимать два значения — 0 или 1. Параметр а 1 определяет наличие (при а 1 = 1) или отсутствие (при а 1 =0) красной составляющей в цвете линии, а 2 — зеленой и а 3 — синей. Различные комбинации значений этих параметров позволяют получать различные цвета. Например, в результате вызова функции xgrid(100) в графической области будет отображена сетка красного цвета. Значения параметров следует вводить подряд без разделителей.

Вывод названий графика и осей

Вывод названий осуществляется с помощью функции

xtitle(name, xname, yname),

здесь name — название графика, x name — название оси Х , y name — название оси Y .

Нанесение описания линий

Нанесение осуществляется вызовом функции legend. Обращение к этой функции выглядит следующим образом:

line1 — описание (название) первого графика, line2 — второго . line n – имя n -го графика;

place определяет месторасположение описания: если place=1, то описание будет расположено в верхнем правом углу графической области (если значение place не указано, то по умолчанию place=1), 2 — в верхнем левом углу, 3 — в нижнем левом углу, 4 — в нижнем правом углу, 5 — положение определяется пользователем по­сле изображения графика;

frame – может принимать два значения %t и %f (по умолчанию frame =%t ), если frame =%t , то описание будет заключено в рамку, если же frame =%f — рамка отсутствует.

Задания для самоконтроля:

Построить в одном графическом окне графики функций и на промежутке от до . Нанести сетку на график.

Построить графики sin( x ) и cos( x ) на промежутке от до и нанести подписи линий.

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

Примеры вычислений в Scilab


Вычисление площади круга и длины окружности

Вычислить площадь круга и длину окружности радиуса r =5.78.

Площадь круга и длина окружности вычисляются по формулам: , соответственно, где r — радиус круга/окружности. Вычислим площадь круга и длину окружности радиуса r= 5.78 (см гл. 3). В Листинге 46 показано вычисление площади круга и длины окружности при помощи Scilab.

Вычисление длины вектора

Пусть — вектор с координатами а 1 и а 2 . Длина вектора вычисляется по формуле . Вычислим длину вектора по формуле (см. гл. 3). Команды для вычисления длины вектора с помощью Scilab приведены в Листинге 47.

Построение касательной к кривой в заданной точке

Построить график функции f ( x )=5— х 2 и касательной к графику функции в точке х =2.

Касательная прямая определяется уравнением l ( x ) =kx+b , где k=f ‘ ( x 0 ) , b=f(x 0 )—k*x 0 , x 0 =a — координата точки касания.

Решение задачи в Scilab (Листинги 48 — 52):

Зададим функцию , и значение x 0 = 2 координаты точки касания (см. п. 2.1 и гл. 5) (Листинг 48).

—>function d=f(x), d=5-x^2 endfunction

Определим функцию f ( x ) = 5— х 2 .

Определим x 0 — координату точки касания.

Для того, чтобы построить касательную прямую необходимо сначала определить коэффициенты b и k в уравнении прямой (Листинг 49).

Определим коэффициент k . Для этого с помощью функции numdiff (см гл. 6) найдем производную функции в точке x 0=2.

Определим коэффициент b по формуле: (см. гл. 3). Строка содержит вызов определенной нами функции с именем « f ».

Определим функцию (см гл. 5) (Листинг 50), график этой функции является касательной прямой к графику функции в точке .

—>function g=kas(x), g=k*x+b endfunction

Определим xgraph — список точек для построения графика (см. пп. 7.1.1) (Листинг 51).

Определим список, содержащий значения x на интервале от —5 до 5 с шагом 0,01.

Вычислим значения функций f ( x ) и kas ( x ) в точках из списка xgraph (см п 7.2) (Листинг 52).

Аргументом функций f ( x ) и kas ( x ) является список xgraph, это значит что значение функции будет вычислено во всех точках списка. Результатом вызова функции kas(xgraph) будет список значений функции в точках списка xgraph.

Используя функцию plot (см. п. 11.1), построим графики функций f ( x ) и kas ( x ) (Листинг 53).


Рис. 6. Результат вызова функции plot

Используя списки xgraph, fgraph, kasgraph, изобразим графики функций f ( x ) и kas ( x ) (рис. 6).

Решение уравнения графическим способом

Пусть необходимо решить уравнение =0.

Преобразуем исходное уравнение к виду :

.

Чтобы найти корни уравнения, необходимо найти точку пересечения графиков функций и . Построим графики функций (см. п. 11.1) в Scilab и нанесем на график сетку для удобства визуального определения точки пересечения (см. пп. 11.2.1). Необходимые команды приведены в Листинге 54, результат выполнения команд можно видеть на рис. 7.

Рис. 7. Графики функций

Графики пересекаются при — это и есть искомый корень уравнения.

Решение биквадратного уравнения

Найти корни уравнения .

Приведем уравнение к виду :

.

Поиск нулей полинома при помощи Scilab (см. гл. 9, выражение (11) приведен в Листинге 55.

Вывод значения выражения на экран

Вывести на экран значение числа до двенадцатого знака после запятой.

Для вывода числа на экран необходимо использовать функцию printf (см. п. 4.2) (Листинг 56):

Выводимое значение вычислено во время вызова функции printf .

Вычисление определенного интеграла

Пусть необходимо вычислить определенный интеграл .

Определим функцию с именем s, которая будет задавать выражение (см. гл. 5) и вычислим интеграл по заданным пределам при помощи функции numdiff (см. п. 6.2). Листинг 57 демонстрирует определение функции и вычисление определенного интеграла по заданным пределам от этой фунуции.

—>function c=s(x), c=1((cos(x/9))^2) endfunction

Вычисление длины гипотенузы

Пусть требуется найти гипотенузу прямоугольного треугольника, если длины его катетов равны 5 и 3.

Длина гипотенузы ( с ) вычисляется по формуле , где и — длины катетов треугольника. Воспользуемся математическими операциями для вычислений (см. гл. 3). Вычисление длины гипотенузы по заданным длинам катетов при помощи Scilab приведено в Листинге 58.

Задание функции для вычисления логарифма с произвольным основанием

Согласно свойствам логарифма:

.

является встроенной функцией Scilab, следовательно, логарифм с любым основанием можно вычислить при помощи встроенной функции (см. п. 4.1).

Для вычисления зададим функцию (см. гл. 5), аргументами которой будут основание логарифма и число, логарифм которого необходимо вычислить. Функция будет вычислять логарифм числа по произвольному основанию по формуле: . Реализация таких вычислений в Scilab показана в Листинге 59.

В данном примере LOG — имя функции, osn и arg — входные параметры функции, они задают основание логарифма и число, которое необходимо прологарифмировать, соответственно.

Во второй строке Листинга 59 проведено обращение к функции LOG . Такое обращение должно привести к вычислению логарифма по основанию 3 от 9 (3 — основание логарифма, 9 — аргумент логарифма).

Задания для самоконтроля

Материальная точка движется прямолинейно по закону .

Найти скорость точки в момент t =2 c (перемещение измеряется в метрах).

Найдите силу, действующую на материальную точку массой кг, движущуюся прямолинейно с переменной скоростью при t =2 c.

Вращение тела вокруг оси совершается по закону , найдите угловую скорость при t =4 c.

Материальная точка движется прямолинейно по закону . Найти скорость точки в момент t =5 c. (перемещение измеряется в метрах).

Вычислить определенный интеграл

Сила в 4 Н растягивает пружину на 8 см. Какую работу надо произвести, чтобы растянуть пружину на 8 см?

Вычислить определенный интеграл

Определите точку пересечения касательной в точке к графику функции с осью Ox .

Постройте график функции и определите по нему точки минимума и максимума функции на промежутке .

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

Докажите, что векторы и перпендикулярны, если— координатные векторы.

Решить систему уравнений:

Задать функцию для вычисления длины вектора по его координатам.

Найдите координаты вектора , если ,, ,.

Глоссарий

Внешняя функция — функция, определенная для использования в различных сеансах Scilab.

Встроенная функция — функция, описание которой хранится в специальном файле (библиотеке). Этот файл подгружается автоматически при запуске Scilab.

Графический интерфейс пользователя (ГИП, англ. graphical user interface, GUI) в вычислительной технике — система средств для взаимодействия пользователя с компьютером, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, значков, меню, кнопок, списков и т. п.). При этом, в отличие от интерфейса командной строки, пользователь имеет произвольный доступ (с помощью клавиатуры или устройства координатного ввода типа «мышь») ко всем видимым экранным объектам.

Комментарии — пояснения к исходному тексту программы, оформленные по правилам, определяемым языком программирования. Комментарии не оказывают никакого влияния на результат работы программы.

Листинг — текст компьютерной программы или ее части, записанный на каком-либо языке программирования. Обычно данный термин употребляется для текста, распечатанного на бумаге.

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

атомарные операторы, никакая часть которых не является самостоятельным оператором;

составные операторы, объединяющие другие операторы в новый, укрупненный оператор.

Список — упорядоченная совокупность объектов, называемых элементами списка.

Терминал — оконечная часть некой системы, которая обеспечивает связь системы с внешней средой. Терминал в Unix представляет собой системное приложение.

Функция (в языке программирования) — это заданная последовательность действий, реализующая определенный алгоритм. Определяется описанием типа результата, именем, списком формальных параметров и составным оператором, описывающим выполняемые функцией действия.

Численное дифференцирование — это вычислительная процедура определения производной в заданной точке. Простейшая идея численного дифференцирования состоит в том, что функция заменяется интерполяционным многочленом и производная функции приближенного заменяется соответствующей производной интерполяционного многочлена.

Численное интегрирование (историческое название: квадратура) — вычисление значения определенного интеграла (как правило, приближенное), основанное на том, что величина интеграла численно равна площади криволинейной трапеции, ограниченной осью абсцисс, графиком интегрируемой функции и отрезками прямых и , где a и b — пределы интегрирования.

Список литературы

Андриевский Б. , Фрадков А. Элементы математического моделирования в программных средах MatLab 5 и Scilab. — СПб.: Наука, 2001. — 286 с.

Алексеев Е.Р. , Чеснокова О.В. Scilab — теория и практика на русском языке / Е.Р. Алексеев, О.В. Чеснокова — 2007. — Режим доступа:

Павлова М.И. Руководство по работе с пакетом Scilab / М.И. Павлова. — Режим доступа: /

Campbell S.L. , Nikoukhah R. Auxiliary Signal Design for Failure Detection. — Cloth, 2004. — 208 p.

Bunks C . , Chancelier J.P., Delebecque F., et ab. Engineering and Scientific Computing with Scilab — Boston.: Birkhäuser, 1999. — 524 p.

Campbell S.L., Chancelier J.P., Nikoukhah R. Modeling and Simulation in Scilab/Scicos – Springer, 2005. — 313 p.

Приложение А

Оформление текста программы для определения внешней функции.

function[имя1. имяM]=имя_функции(переменная_1. переменная_N)

В данном случае имя1. имяM – список выходных параметров (от 1 до M ), то есть переменных, которым будет присвоен конечный результат вычислений, имя_функции – имя, с которым эта функция будет вызываться, переменная_1. переменная_N – входные параметры ( N параметров).

Вычисление интегралов, решение уравнений и систем

Краткие теоретические сведения

В Scilab вычисление определенного интеграла методом трапеций реализовано функцией

где x –вектор значений аргумента подынтегральной функции на отрезке интегрирования, y –вектор значений, полученных при вычислении подынтегральной функции для элементов вектора x.

Например, для вычисления нужно выполнить следующий набор команд:

Фрагмент программы x=2:0.01:5.3 y =2*x./(sin(x)+1.5) integral = inttrap(x,y)disp(integral)Результат 30.436962

Для вычисления определенного интеграла с использованием алгоритма квадратурных формул предназначена функция

Integrate(fun, x, a, b, ,er1 ,er2),

где fun– подынтегральная функция в символьном виде, x – переменная интегрирования в символьном виде, a, b –пределы интегрирования, er1,er2 –абсолютная и относительная погрешности интегрирования (необязательные параметры).

Например, для вычисления нужно задать:

Фрагмент программы z=integrate(‘2*x./(sin(x)+1.5)’, ‘x’, 2, 5.3)disp(z)Результат 30.437056

Универсальная команда интегрирования:

[integral,err]=intg(a, b, name ,er1,er2),

где a, b –пределы интегрирования, name – имя подынтегральной функции (может быть задана с помощью внешней функции), er1,er2 –абсолютная и относительная погрешности интегрирования (необязательные параметры). Функция intgвозвращает значение интеграла (integral) и погрешность вычислений (err).

Внешнюю функцию можно задать командой

deff(‘переменная=имя функции(параметр)’, ‘символьное представление функции’) Например, deff(‘y=F(x)’, ‘y=2*x./(sin(x)+1.5)’).или

function переменная = имя функции(параметр-аргумент функции)

операторы, вычисляющие значение функции

endfunctionНапример, function y=f(t) y=t^2/sqrt(3+sin(t)) endfunctionилиfunction y=f(t),y=t^2/sqrt(3+sin(t)),endfunction

Ниже приводится пример вычисления интеграла .

Фрагмент программы function y=f(x) y=2*x./(sin(x)+1.5)endfunctionz=intg(2,5.3,f), disp(z)Результат 30.437056

Для решения нелинейных уравнений в Scilab используется функция

где x0 –начальное приближение корня, f– функция, описывающая левую часть уравнения f(x)=0.

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

Фрагмент программы deff(‘y=F(x)’, ‘y=sin(2*x)-cos(3*x.^2)-sin(3*x)’)root=fsolve(7,F)disp(root)Результат 6.9755674

Для решения полиномиальных уравнений вида используется функция

где а – вектор коэффициентов перед неизвестными полинома размерностью n+1(n – порядок полинома).

Результатом работы этой функции будет вектор корней полинома размерностью n.

Пример решения полиномиального уравнения приведен ниже.

Фрагмент программы v=[3 1 -10 -8]R=roots(v)disp(R)Результат 2. -1.3333333 — 1.

Для уравнения два корня – комплексные.

Фрагмент программы v=[3 1 -10 8]R=roots(v)disp(R)Результат — 2.2935835 0.9801251 + 0.4494650i 0.9801251 — 0.4494650i

Функция rootsможет также принимать в качестве параметра полином, созданный функциейpolyи представляющий собой левую часть уравнения :

где a –вектор коэффициентов полинома записанных в обратном порядке, x — символьная переменная, f1– символьная переменная, принимающая значения ‘c’ или ‘r’ (roots или coeff).

Например, чтобы создать полином , нужно использовать команду

Фрагмент программы p=poly([3 -2 1 0 4],’x’,’c’)disp(p)Результат

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

Фрагмент программы p=poly([-8 -10 1 3],’x’,’c’)R=roots(p)disp(R)Результат 2. — 1.3333333 — 1.

Для решения систем линейных уравнений в Scilab есть следующие способы:

— применение операции левого матричного деления;

— использование обратной матрицы.

Если задана система линейных алгебраических уравнений вида:

где А – матрица коэффициентов перед неизвестными системы, В – вектор свободных членов, то решение системы может быть найдено в виде:

То же самое решение может быть получено с помощью обратной матрицы, например:

Например, решить систему уравнений

Фрагмент программы A=[3 1;-3 5]; B=[-4 ;36]; X=inv(A)*B, disp(X)илиX1=A\B , disp(X1)Результат — 3.1111111 5.3333333

Для решения систем нелинейных уравнений можно использовать функцию

где x0 –вектор начальных приближений для неизвестных, f –функция, определяющая систему

Например, решение системы можно выполнить следующим образом:

Фрагмент программы function [y]=fun(x) y(1)=2*x(1)+x(2)-6 y(2)=x(1)^2+x(2)^2-14endfunctionX0=[1;1]R=fsolve(X0,fun)disp(R)Результат 1.2338096 3.5323808

Задание 1. Вычисление определенного интеграла

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

Шаг 1. Создадим вектор X, значения которого будут изменяться от 2,1 до 4,3 с шагом 0.01.

Шаг 2. Создадим вектор Y, каждое значение которого вычисляется по формуле .

Шаг 3. Применим команду inttrap(X, Y).

Шаг 4. Используем функцию integrate,задав подынтегральную функцию в символьном виде.

Шаг 5. Определим внешнюю функцию с помощью команды deffили конструкции function

Шаг 6. Выведем результаты, используя команду disp.

ПрограммаРезультат выполнения
X =2.1:0.01:4.3 Y =sin(X)/1.5 integral_1 = inttrap(X,Y)integral_2=integrate(‘sin(x)/1.5’, ‘x’, 2.1, 4.3)disp(integral_1)disp(integral_2)— 0.0693640 — 0.0693646
deff(‘y=F(x)’,’y=sin(x)/1.5′); integral_3=intg(2.1,4.3,F)function y=f(x) y=sin(x)/1.5endfunctionintegral_4=intg(2.1,4.3,f)disp(integral_3)disp(integral_4)— 0.0693646 — 0.0693646

Индивидуальные задания приведены в таблице 3.4.

Задание 2. Поиск корней уравнения, графическая интерпретация

Постановка задачи. Найти корень уравнения для заданного начального приближения. Выполнить графическую интерпретацию результата.

Шаг 1. Определим внешнюю функцию с помощью команды deffили конструкции function

Шаг 2. Найдем корень уравнения с помощью функции fsolve,подставив в качестве первого параметра заданное начальное приближение.

Шаг 3. Выведем результат, используя команду disp.

Шаг 4. Выполним графическую интерпретацию результата. Для этого зададим аргумент функции из левой части уравнения таким образом, чтобы найденный корень попадал в диапазон между первым и последним элементом вектора. Построим график функции из левой части уравнения с помощью plot.Построим также линию y=0 и отметим точку с абсциссой, равной корню, и ординатой, равной значению функции для корня.

ПрограммаРезультат выполнения
deff(‘y=F(x)’, …’y=sin(x)-cos(x.^2)-sin(2*x)’)root=fsolve(1,F)disp(root)x=0.5:0.01:2.5plot(x,F(x),’-b’,root,F(root),’xr’,x,0,’-k’)1.1695683

Индивидуальные задания приведены в таблице 3.5

ВариантУравнениеНачальноеприближение
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

Задание 3. Поиск корней полиномиального уравнения, графическая интерпретация

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

Шаг 1. Создадим вектор коэффициентов полинома в левой части уравнения (или полином с помощью poly)

Шаг 2. Найдем корни уравнения с помощью функции roots.

Шаг 3. Выведем результат, используя команду disp.

Шаг 4. Выполним графическую интерпретацию результата. Для этого зададим аргумент функции из левой части уравнения таким образом, чтобы выбранный действительный корень попадал в диапазон между первым и последним элементом вектора. Построим график функции из левой части уравнения с помощью plot.Построим также линию y=0 и отметим точку с абсциссой, равной корню, и ординатой, равной значению функции для корня.

ПрограммаРезультат выполнения
v=[2 0 4 -6 -3]R=roots(v)disp(R)root=R(3)x=0.5:0.01:2y=2*x.^4+4*x.^2-6*x-3F_root=2*root^4+4*root^2-6*root-3plot(x,y,’-b’,root,F_root,’xr’,x,0,’-k’)— 0.4129576 + 1.7282075i — 0.4129576 — 1.7282075i 1.2164706 — 0.3905555

Индивидуальные задания приведены в таблице 3.6.

ВариантУравнение
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

Задание 4. Решение системы линейных уравнений

Постановка задачи. Решить систему линейных уравнений.

Шаг 1. Создадим матрицу коэффициентов при неизвестных

Шаг 2. Создадим вектор свободных членов.

Шаг 3. Умножим матрицу, обратную к матрице коэффициентов, на вектор свободных членов (или применим операцию левого матричного деления).

Шаг 4. Выведем результат, используя команду disp.

ПрограммаРезультат выполнения
A=[3 1 1;-3 5 6;1 -4 -2]; B=[-4 ;36;-19]; X=inv(A)*B disp(X)— 3. 3. 2.

Индивидуальные задания приведены в таблице 3.7.

Система уравненийСистема уравнений
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.

Статьи к прочтению:

Метод Крамера за 3 минуты. Решение системы линейных уравнений — bezbotvy

Похожие статьи:

Приближенное вычисление интегралов Приближённое вычисление определённого интеграла основано на геометрическом смысле интеграла и сводится к приближённому…

Задание: графически и численно решить систему нелинейных алгебраических уравнений, на примере поиска точек пересечения двух функций. Исходные данные:…


источники:

http://gigabaza.ru/doc/5392-p4.html

http://csaa.ru/vychislenie-integralov-reshenie-uravnenij-i-sistem/