Обратите внимание, что для построения зависимости искомого тока требуется решение обыкновенного дифференциального уравнения
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

 

2.5.3. Контрольные вопросы

1) Как формулируется постановка задачи численного решения ОДУ?

2) Какие начальные условия должны быть заданы в соответствии с задачей Коши при решении ОДУ 1-го порядка средствами Scilab?

3) Какие начальные условия должны быть заданы в соответствии с задачей Коши при решении ОДУ n-го порядка средствами Scilab?

4) Что является численным решением ОДУ?

5) Какие численные методы реализованы в функции ode?

6) Какие входные параметры функции ode являются обязательными?

7) В какой форме должны быть записаны функции ОДУ при использовании функции ode?

8) Какими средствами решается система ОДУ?

9) Что представляет собой решение ОДУ 1-го и 2-го порядка при использовании функций ode?


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

 

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

 

 В общем виде система линейных уравнений (СЛУ) записывается следующим образом [20]:

 

 

Другая форма записи СЛУ – матричная:

 

 

где: А – матрица коэффициентов, Х – вектор неизвестных, В – вектор свободных членов.

Решением СЛУ является такой набор значений неизвестных x 1 , x 2 ,…, xn, при котором n уравнений системы обращаются в тождества.

 

Методы решения СЛУ обычно разделяют на две большие группы:

1) точные методы, представляющие собой алгоритмы, позволяющие находить точные решения за конечное число арифметических операций, (например, правило Крамера или метод Гаусса);

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

 

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

Пусть .

 

 Известно, что если Δ≠0,то СЛУ имеет единственное решение, а если Δ=0, то СЛУ не имеет решения или имеет бесконечное множество решений.

Однако часто Δ≠0 могут иметь СЛУ, при решении которых за счет накапливания погрешностей получают неверные решения. Такие системы линейных уравнений называют плохо обусловленными системами. В случае плохо обусловленных систем решение найти трудно, а точность решения сомнительна.

 

 

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

 

В пакете Scilab существует специальная функция linsolve, предназначенная для решения СЛУ. Функция linsolve имеет следующий формат:

 

X= linsolve (A ,- b),

где А– матрица коэффициентов;

b– вектор свободных членов;

Х – выходной параметр – вектор неизвестных.

 

На рис.2.6.2-1 приведено решение СЛУ:

 

Очевидно, что определитель матрицы А отличен от нуля, следовательно, СЛУ имеет решение. Функция решает СЛУ вида Ax+b=0, поэтому на
рис. 2.6.2-1, который иллюстрирует пример решения СЛУ с использованием встроенной функции linsolve, знак вектора b изменен на обратный. В результате решения системы получены два корня х1=-3 и х2=2.5.

 

-->A = [1,2; 3,4];             // Матрица коэффициентов -->b = [2; 1];                 // Вектор свободных членов -->X = linsolve(A, -b)         // Решение СЛУ X = -3. 2.5

 

Рис.2.6.2-1. Решение СЛУ с использованием функции linsolve

 

В математике существует множество методов решения СЛУ. Рассмотрим, например, решение СЛУ с использованием метода обратной матрицы. В этом случае СЛУ должна быть представлена в виде A * x = b (где A – матрица коэффициентов при неизвестных, х – вектор неизвестных, b – вектор свободных членов). В ходе решения требуется выполнить следующую последовательность действий:

· создать матрицу коэффициентов A, где коэффициенты размещаются по столбцам (если переменная отсутствует в уравнении, то элемент матрицы определяется равным нулю);

· задать вектор правой части b размером n;

· найти решение по формуле x = b \ A.

Полученное решение можно проверить по формуле b 1= x * A. В результате должно получиться равенство b 1= b

Запись A \ b соответствует математической операции A-1b, а запись x = A\b эквивалентна записи x = inv ( A )* b.

В результате решения системы (рис. 2.6.2-2) получены два корня х1=-3 и х2=2.5. Проверка, выполненная путем умножения вектора полученных корней на матрицу коэффициентов, показала, что полученное решение верно, поскольку ее результат численно равен вектору свободных членов.

 

-->A = [1 2; 3 4];        // Матрица коэффициентов -->b = [2; 1];              // Вектор свободных членов -->det(A)                   // Вычисление определителя матрицы A ans = -2. -->x = A \ b                // Решение СЛУ методом обратной матрицы x = -3. 2.5 -->b1 = A * x               // Проверка b1 = 2. 1.

 

Рис.2.6.2-2. Решение СЛУ методом обратной матрицы

 

В следующем примере СЛУ решается при помощи правила Крамера, которое заключается в следующем. Если определитель Δ = detA матрицы системы из n линейных уравнений с n неизвестными вида A*x = b отличен от нуля, то система имеет единственное решение x 1 , x 2 , … xn, определяемое по формулам Крамера: xi=∆i/∆, где i=1,2,…,n, а i – определитель матрицы, полученной из матрицы A путем замены i-го столбца матрицы А столбцом свободных членов b.

Пусть задана следующая система линейных уравнений с 4-мя неизвестными:

 

На рис. 2.6.2-3 приведено решение заданной СЛУ средствами Scilab по методу Крамера. Решение СЛУ оформлено в виде функции Kramer ( A , b , n ). Перед обращением к функции предусмотрен ввод матрицы коэффициентов (A) и вектора свободных членов (b). Обратите внимание, что в функции предусмотрено, что если определитель матрицы коэффициентов равен нулю, то решение не выполняется, а на экран выводится сообщение «Определитель матрицы А равен нулю». В нашем случае в результате выполнения функции получены четыре корня СЛУ: Х(1)=3; Х(2)=-4; Х(3)=-1; Х(4)=1. После вывода их значений произведена проверка правильности решения СЛУ.

 

-->// Решение СЛУ по методу Крамера -->clear --> // Загрузка сценария РИС2 623 и выполнение функции Kramer --> --> A = [2 1-5 1; 1-3 0 -6; 0 2 -1 2; 1 4 -7 6]; // Матрица коэффициентов --> b = [8; 9; -5; 0]; // Матрица свободных членов -->exec('Kramer.sce'); -->X = Kramer(A, b, 4) // Обращение к функции решения СЛУ по методу Крамера X = 3. -4. -1. 1. --> P = A * X - b   // Проверка  P = 0. 0. -8.882D-16 2.665D-15

 

Рис. 2.6.2-3. Решение СЛУ по методу Крамера

Рассмотрим следующий не менее известный метод решения СЛУ– метод Гаусса, который основан на том, что от исходной системы уравнений происходит переход к эквивалентной системе, которая решается проще, чем исходная.

Метод состоит из двух этапов. Первый этап (прямой ход) заключается в том, что расширенная матрица (матрица коэффициентов, в которую добавлен столбец свободных членов) путем элементарных преобразований (перестановка уравнений системы, умножение уравнений на число, отличное от нуля, и сложение уравнений) приводится к ступенчатому виду. Для этой цели в Scilab используется функция rref([A,b]).На втором этапе (обратный ход) ступенчатую матрицу преобразовывают так, чтобы в первых n столбцах получилась единичная матрица. Последний, n+1 столбец этой матрицы содержит решение системы линейных уравнений.

На рис.2.6.2-4 приведено решение следующей СЛУ средствами Scilab по методу Гаусса:

 

 

Метод Гаусса реализован в виде функции Gauss ( A , b ). В качестве входных параметров здесь используется матрица коэффициентов (А) и вектор свободных членов (b), а выходным параметром является вектор, содержащий решение СЛУ (Х).

 

-->// Решение СЛУ по методу Гаусса -->clear --> // Загрузка сценария РИС2624 --> // Матрица коэффициентов и вектор свободных членов --> A = [2 -1 1; 3 2 -5; 1 3 -2]; b = [0; 1; 4]; --> exec('РИС2624.sce'); -->X = Gauss(A, b) // Обращение к функции решения СЛУ по методу Гаусса X = 0.4642857 1.6785714 0.75

 

Рис.2.6.2-4. Решение СЛУ методом Гаусса

2.6.3 Контрольные вопросы

 

 

1) Как формулируется постановка задачи численного решения системы линейных уравнений?

2) Какие методы решения СЛУ известны?

3) Что называют плохо обусловленными линейными системами?

4) Какой формат имеет функция linsolve?

5) Что представляет собой алгоритм решения СЛУ средствами Scilab по методу Крамера?

6) Что представляет собой алгоритм решения СЛУ средствами Scilab по методу Гаусса?


 

2.7. Решение задач оптимизации
средствами Scilab

 

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

 

 







Дата: 2019-11-01, просмотров: 292.