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

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

  • Тип: Диплом
  • Предмет: Информатика и телекоммуникации
  • Все дипломы по информатике и телекоммуникациям »
  • Язык: Русский
  • Дата: 1 окт 2011
  • Формат: RTF
  • Размер: 2 Мб
  • Страниц: 39
  • Слов: 2705
  • Букв: 18573
  • Просмотров за сегодня: 1
  • За 2 недели: 6
  • За все время: 486

Тезисы:

  • В данной курсовой работе разработано операционное устройство для решения системы линейных уравнений.
  • Аналоговое устройство линейное уравнение.
  • Схема для уравнения один системы (2) .
  • Схема для уравнения два системы (2) .
  • Схема для уравнения три системы (2) .
  • Для нахождения токов составим систему уравнений по законам Кирхгофа.
  • В качестве активного элемента целесообразно использовать операционный усилитель.
  • Назначение и структура операционных усилителей.
  • В матричной форме эта система записывается: А*Х=В.
  • Решение можно найти: Х = А*В.

Похожие работы:

250 Кб / 28 стр / 1954 слов / 12842 букв / 10 дек 2015

291 Кб / 19 стр / 2428 слов / 15082 букв / 18 мая 2016

398 Кб / 14 стр / 1923 слов / 10952 букв / 21 дек 2010

170 Кб / 38 стр / 4551 слов / 28464 букв / 8 фев 2015

200 Кб / 21 стр / 1774 слов / 9472 букв / 10 мая 2020

24 Кб / 51 стр / 3514 слов / 28836 букв / 27 ноя 2008

84 Кб / 45 стр / 5589 слов / 49671 букв / 1 ноя 2012

137 Кб / 33 стр / 3727 слов / 21749 букв / 13 янв 2020

89 Кб / 21 стр / 2467 слов / 17346 букв / 24 янв 2019

378 Кб / 39 стр / 5063 слов / 36156 букв / 1 авг 2015

Операционное исчисление с примерами решения и образцами выполнения

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

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

Методы операционного исчисления предполагают реализацию следующей условной схемы решения задачи.

  1. От искомых функций переходят к некоторым другим функциям — их изображениям.
  2. Над изображениями производят операции, соответствующие заданным операциям над самими функциями.
  3. Получив некоторый результат при действиях над изображениями, возвращаются к самим функциям.

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

Преобразование Лапласа

Оригиналы и их изображения:

Основными первоначальными понятиями операционного исчисления являются понятия функции-оригинала и функции-изображения.

Пусть f(t) — действительная функция действительного переменного t (под t будем понимать время или координату).

Функция f(t) называется оригиналом, если она удовлетворяет следующим условиям:

  1. f(t)— кусочно-непрерывная при т. е. она непрерывна или имеет точки разрыва I рода, причем на каждом конечном промежутке оси t таких точек лишь конечное число.
  2. Существуют такие числа что для всех t выполняется неравенство , т. е. при возрастании t функция f(t) может возрастать не быстрее некоторой показательной функции. Число называется показателем роста f(t).

Условия 1-3 выполняются для большинства функций, описывающих различные физические процессы.

Первое условие означает, что процесс начинается с некоторого момента времени; удобнее считать, что в момент t = 0. Третьему условию удовлетворяют ограниченные функции (для них можно положить ), степенные и другие (для функций вида ( условие 3 не выполняется). Не является оригиналом, например, функция (не удовлетворяет второму условию).

Замечание:

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

Изображением оригинала f(t) называется функция F(p) комплексного переменного , определяемая интегралом

Операцию перехода от оригинала f(t) к изображению F(p) называют преобразованием Лапласа. Соответствие между оригиналом f(t) и изображением F(p) записывается в виде или (принято оригиналы обозначать малыми буквами, а их изображения — соответствующими большими буквами).

Теорема:

Существование изображения. Для всякого оригинала f(t) изображение F(p) существует (определено) в полуплоскости — показатель роста функции f(t) , причем функция F(p) является аналитической в этой полуплоскости .

Докажем первую часть теоремы. Пусть произвольная точка полуплоскости (см. рис. 302).

Учитывая, что находим:

Отсюда вытекает абсолютная сходимость интеграла (78.1), т. е. изображение F(p) существует и однозначно в полуплоскости

Следствие:

Необходимый признак существования изображения. Если функция F(p) является изображением функции f(t) , то

Это утверждение непосредственно вытекает из неравенства (78.2), когда

Так как F(p) — аналитическая функция в полуплоскости

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

Отметим, что из аналитичности функции F(p) следует, что все ее особые точки должны лежать левее прямой или на самой этой прямой. Функция F(p) , не удовлетворяющая этому условию, не является изображением функции f(t). Не является изображением, например, функция (ее особые точки расположены на всей оси s).

Теорема:

О единственности оригинала. Если функция F(p) служит изображением двух оригиналов , то эти оригиналы совпадают друг с другом во всех точках, в которых они непрерывны.
(Примем без доказательства.)

Пример:

Найти изображение единичной функции Хевисайда

Решение:

По формуле (78.1) при находим:

т. e. , или, в символической записи,

В дальнейшем функцию-оригинал будем кратко записывать в виде f(t) , подразумевал, что

Пример:

Найти изображение функции — любое число.

Решение:

Данная функция является оригиналом. По формуле (78.1) имеем

если Re(p — a) > 0. Таким образом,

Пример:

Найти изображение функции f(t) = t.

Решение:

В этом случае преобразование Лапласа имеет вид

Замечание:

Функция является аналитической не только в полуплоскости Rep > Re а, где интеграл (78.1) сходится, а на всей комплексной плоскости р, кроме точки р = а. Такая особенность наблюдается и для многих других изображений. Далее для нас будет более важным, как правило, само изображение функции, а не область, в которой оно выражается интегралом (78.1).

Свойства преобразования Лапласа

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

Линейность

Линейной комбинации оригиналов соответствует такая же линейная комбинация изображений, т. е. если

— постоянные числа, то

Используя свойства интеграла, находим

Пример:

Найти изображения функций — любое число), с (const),

Решение:

Пользуясь свойством линейности, формулой (78.3), находим:

Аналогично получаем формулу

Далее, т. е.

Аналогично получаем формулу

т.е. умножение аргумента оригинала на положительное число приводит к делению изображения и его аргумента на это число.

По формуле (78.1) имеем

(так как безразлично, какой буквой обозначена переменная интегрирования).
Например, пусть . Тогда

Смещение (затухание)

т. е. умножение оригинала на функцию влечет за собой смещение переменной р.

В силу формулы (78.1) имеем

Благодаря этому свойству можно расширить таблицу соответствия между оригиналами и их изображениями:

Пример:

Найти оригинал по его изображению

Решение:

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

(См. формулы (78.9), (78.10) и свойство линейности.)

Запаздывание

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

Положив , получим

Поясним термин «запаздывание». Графики функции f(t) и имеют одинаковый вид, но график функции сдвинут на единиц

Рис. 304
Рис. 305
вправо (см. рис. 304). Следовательно, функции f(t) и описывают один и тот же процесс, но процесс, описываемый функцией , начинается с опозданием на время .

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

называется обобщенной единично ной функцией (см. рис 305).

можно записать так:

Пример:

Найти изображение f(t) = t — 1.

Решение:

Для того чтобы быть оригиналом, функция f(t) должна удовлетворять условиям 1-3 (см. п. 78.1). В этом смысле исходную задачу можно понимать двояко.

Если понимать функцию f(t) как

т. е. (см. рис. 306, а), то, зная, что (см. формулу (78.4)), и, используя свойство линейности, находим

Если же понимать функцию f(t) как

т. е. (см. рис. 306, б), то, используя свойство запаздывания, находим

Пример:

Найти изображение функции

Решение:

Данная функция описывает единичный импульс (см. рис. 307), который можно рассматривать как разность двух оригиналов: единичной функции и обобщенной единичной функции . Поэтому

Пример:

Найти изображение функции

Решение:

Функция-оригинал изображена на рис. 308. Запишем ее одним аналитическим выражением, используя функции Хевисайда :

Раскроем скобки и приведем подобные слагаемые:

Изображение функции f(t) будет равно

Замечания:

1.Изображение периодического оригинала с периодом, равным Т,

есть

применяется значительно реже.

Дифференцирование оригинала

Если и функции являются оригиналами, то

По определению изображения находим

Итак, Пользуясь полученным результатом, найдем изображение второй производной f»(t):

Аналогично найдем изображение третьей производной f»‘(t):

Применяя формулу (78.11) (п — 1) раз, получим формулу (78.14).

Замечание. Формулы (78.11)-(78.14) просто выглядят при нулевых начальных условиях: если

т. е. дифференцированию оригинала соответствует умножение его изображения на р.

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

Пример:

Найти изображение выражения

Решение:

Пусть Тогда, согласно формулам (78.11)—(78.13), имеем

Дифференцирование изображения

Если то

т. е. дифференцированию изображения соответствует умножение его оригинала на (-t).

Согласно теореме 78.1 существования изображения, F(p) является аналитической функцией в полуплоскости Следовательно, у нее существует производная любого порядка. Дифференцируя интеграл (78.1) по параметру р (обоснование законности этой операции опустим), получим

Пример:

Найти изображения функций

Решение:

Так как , то, в силу свойства дифференцирования изображения, имеем т. е.

Продолжая дифференцирование, получим

С учетом свойства смещения получаем

Согласно формуле (78.5), Следовательно,

Аналогично, используя формулы (78.6), (78.7) и (78.8), находим

С учетом свойства смещения и формул (78.15) и (78.16), получаем

Интегрирование оригинала

т. е. интегрированию оригинала от 0 до t соответствует деление его изображения на р.

Функция является оригиналом (можно проверить).

Пусть Тогда по свойству дифференцирования оригинала имеем

(так как ). А так как

Интегрирование изображения

Если и интеграл сходится, то т. е. интегрированию изображения от p до соответствует деление его оригинала на t.

Используя формулу (78.1) и изменяя порядок интегрирования (обоснование законности этой операции опускаем), получаем

Пример:

Найти изображение функции найти изображение интегрального синуса

Решение:

т. е. Применяя свойство интегрирования t оригинала, получаем

Умножение изображений

Если то

Можно показать, что функция является оригиналом.

Используя преобразование Лапласа (78.1), можно записать

Область D интегрирования полученного двукратного интеграла определяется условиями (см. рис. 309).

Изменяя порядок интегрирования и полагая , получим

Интеграл в правой части формулы (78.17) называется сверткой функции и обозначается символом , т. е.

Можно убедиться (положив ), что свертывание обладает свойством переместительности, т. е.

Умножение изображений соответствует свертыванию их оригиналов, т. е.

Пример:

Найти оригинал функций

Решение:

Следствие:

Если также является оригиналом, то

Запишем произведение в виде

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

Формула (78.18) называется формулой Дюамеля. На основании свойства переместительности свертки формулу Дюамеля можно записать в виде

Формулу Дюамеля можно применять для определения оригиналов по известным изображениям.

Пример:

Найти оригинал, соответствующий изображению

Решение:

то на основании формулы Дюамеля (78.18) имеем

Умножение оригиналов

где путь интегрирования — вертикальная прямая (см. рис. 310) (примем без доказательства).

Рассмотренные свойства преобразования Лапласа представляют собой основные правила (аппарат) операционного исчисления. Для удобства пользования перечислим эти свойства.

6. Дифференцирование изображения

Таблица оригиналов и изображений

Составим краткую таблицу, устанавливающую соответствие между некоторыми оригиналами (часто встречающимися на практике) и их изображениями. Достаточно полная таблица оригиналов и изображений, позволяющая по заданному оригиналу находить изображение и наоборот, есть, в частности, в книге «Справочник по операционному исчислению» (авторы В. А. Диткин и П. И. Кузнецов).

Обратное преобразование Лапласа

Теоремы разложения:

Рассмотрим две теоремы, называемые теоремами разложения, позволяющие по заданному изображению F(p) находить соответствующий ему оригинал f(t).

Теорема:

Если функция F(p) в окрестности точки может быть представлена в виде ряда Лорана

является оригиналом, имеющим изображение F(p), т. е.

Примем эту теорему без доказательства.

Пример:

Найти оригинал f(t), если

Решение:

Следовательно, на основании теоремы 79.1

Запишем лорановское разложение функции в окрестности точки:

где Следовательно,

Теорема:

Если правильная рациональная дробь, знаменатель которой В(р) имеет лишь простые корни (нули) то функция

является оригиналом, имеющим изображение F(p).

Отметим, что дробь должна быть правильной (степень многочлена А(р) ниже степени многочлена В(р)) в противном случае не выполняется необходимый признак существования изображения

не может быть изображением.

Разложим правильную рациональную дробь на простейшие:

где — неопределенные коэффициенты. Для определения коэффициента этого разложения умножим обе части этого равенства почленно на :

Переходя в этом равенстве к пределу при , получаем

Итак, Аналогичным путем (умножая обе части равенства (79.2) на найдем

Подставляя найденные значения в равенство (79.2), получим

Так как по формуле (78.3)

то на основании свойства линейности имеем

Замечание:

Легко заметить, что коэффициенты определяются как вычеты комплексной функции F(p) в простых полюсах (формула (77.4)):

Можно показать, что если правильная дробь, но корни (нули) знаменателя В(р) имеют кратности соответственно, то в этом случае оригинал изображения F(p) определяется формулой

Теорему 79.2 можно сформулировать следующим образом:
Теорема:

Если изображение является дробно-рациональной функцией от — простые или кратные полюсы этой функции, то оригинал f(t), соответствующий изображению F(p), определяется формулой

Формула Римана-Меллина

Общий способ определения оригинала по изображению дает обратное преобразование Лапласа (формула обращения Римана-Меллина), имеющее вид

где интеграл берется вдоль любой прямой .

При определенных условиях интеграл (79.5) вычисляется по формуле

Замечание:

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

Пример:

Найти оригинал по его изображению

Решение:

Проще всего поступить так:

(использовали свойство линейности и формулы (78.5) и (78.6)).

Если же использовать теорему 79.2 разложения, то будем иметь:

корни знаменателя и, согласно формуле (79.1),

Пример:

Найти функцию-оригинал, если ее изображение
задано как

Решение:

— простой корень знаменателя, — 3-кратный корень (m = 3). Используя формулы (79.1) и (79.3), имеем:

Приведем другой способ нахождения f(t). Разобьем дробь

на сумму простейших дробей:

Приведем третий способ нахождения f(t). Представим F(p) как
произведение и так как пользуясь свойством умножения изображений, имеем:

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

Пусть требуется найти частное решение линейного дифференциального уравнения с постоянными коэффициентами

удовлетворяющее начальным условиям

где — заданные числа.

Будем считать, что искомая функция y(t) вместе с ее рассматриваемыми производными и функция f(t) являются оригиналами.

Пусть Пользуясь свойствами дифференцирования оригинала и линейности, перейдем в уравнении(80.1) от оригиналов к изображениям:

Полученное уравнение называют операторным (или уравнением в изображениях). Разрешим его относительно Y:

— алгебраические многочлены от p степени п и п-1 соответственно. Из последнего уравнения находим

Полученное равенство называют операторным решением дифференциального уравнения (80.1). Оно имеет более простой вид, если все начальные условия равны нулю, т. е.

В этом случае

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

Замечание:

Полученное решение y(t) во многих случаях оказывается справедливым при всех значениях t (а не только при ).

Пример:

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

Решение:

Пусть Тогда

Подставляя эти выражения в дифференциальное уравнение, получаем операторное уравнение:

Отсюда Находим y(t). Можно разбить дробь на сумму простейших но так как корни знаменателя простые, то удобно воспользоваться второй теоремой разложения (формула (79.1)), в которой

Пример:

Найти решение уравнения

при условии

Решение:

График данной функции имеет вид, изображенный на рисунке 311.

С помощью единичной функции правую часть данного дифференциального уравнения можно записать одним аналитическим выражением:

Таким образом, имеем

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

то по теореме запаздывания находим:

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

Покажем это на конкретном примере.

Пример:

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

Решение:

Система операторных уравнений принимает вид

Решая эту систему алгебраических уравнений, находим:

Переходя от изображений к оригиналам, получаем искомые решения:

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

Решение заданий и задач по предметам:

Дополнительные лекции по высшей математике:

Образовательный сайт для студентов и школьников

Копирование материалов сайта возможно только с указанием активной ссылки «www.lfirmal.com» в качестве источника.

© Фирмаль Людмила Анатольевна — официальный сайт преподавателя математического факультета Дальневосточного государственного физико-технического института

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

Дальневосточная академия государственной службы

Факультет государственного и муниципального управления

по курсу: Информатика

Разработка программы решения системы линейных уравнений

1 курса 3 годичной

заочной формы обучения

Воищев Алексей Юрьевич

г. Хабаровск 2005

1. Описание математических методов решения систем линейных уравнений

1.1 Метод Гаусса

1.2 Матричный метод

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

2. Язык программирования Паскаль

2.1 Структура программы

2.2 Описание переменных

2.3 Основные конструкции языка

2.4 Структуры данных

2.4 Процедуры и функции

3. Описание программы

3.1 Работа программы

3.2 Блок-схема программы

Список используемых источников и литературы

Введение

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

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

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

1 . Описание математических методов решения систем линейных уравнений

1.1 Метод Гаусса

Идея метода Гаусса состоит в последовательном исключении неизвестных. Алгоритм решения системы уравнений этим методом проследим на примере.

Пример 1.

Выбирается ведущее уравнение с коэффициентом при х1 , равным 1. В нашем примере ведущим уравнением будет второе. Систему лучше переписать, поставив это уравнение на первое место:

Умножаем первое уравнение на 6 и вычитаем из полученного второе, чтобы исключить из второго неизвестное х1 . Первое уравнение записываем, а на место второго — результат вычитания.

Затем первое уравнение умножим на 3 и складываем с третьим уравнением. Тогда получаем систему

Или

первое уравнение переписываем без изменения, а второе умножаем на 7 и вычитаем из него третье уравнение, умноженное на 15, чтобы избавиться от х2 в третьем уравнении. При этом второе записываем без изменения, на месте третьего — результат вычитания. Тогда

Из третьего следует х3 =-3, подставим его во второе, получим х2 = — 2. Далее подставим найденные х2 и х3 в первое уравнение, получим х1 = 1.

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

1.2 Матричный метод

Запишем систему линейных 3 уравнений с 3 неизвестными

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

А =

Введем в рассмотрение матрицы — столбцы для неизвестных и свободных членов:

Х = ; В = .

Тогда систему (2) можно переписать в матричной форме

Умножив это уравнение на слева, получим , откуда =или

Следовательно, матрица — решение Х находится как произведение на В .

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

Решение: определитель матрицы

А=

∆=-1, значит, существует обратная матрица .

Матрица — столбец при неизвестных:

Х =

Матрица — столбец из свободных членов:

В =

Тогда решение запишется в виде

==

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

Число (а 11 а 22а 12 а 21 ) называется определителем второго порядка и обозначается символом

Определитель второго порядка содержит две строки и два столбца. Числа а 11 , а 12 , а 21 , а 22 называются элементами определителя. Диагональ определителя, на которой расположены числа а 11 , а 22 — главная, а элементы а 12 , а 21 составляют побочную диагональ.

Определитель 3-го порядка содержит три строки и три столбца:

Для вычисления определителя третьего порядка существует несколько способов.

Рассмотрим метод вычисления определителя разложением по элементам первой строки.

Введем понятие минора и алгебраического дополнения.

Минором некоторого элемента определителя называется определитель, полученный из данного вычеркиванием той строки и того столбца в которых этот элемент расположен. Обозначается Мij ( i — номер строки, j — номер столбца).

Например, минором элемента а12 является определитель

Алгебраическим дополнением данного элемента определителя называется его минор, умноженный на (-1) i+ j . Алгебраические дополнения обозначаются буквами Аij, и тогда Аy = (-1) i+ j My .

Определитель вычисляется так:

=.

Так же можно разложить определитель по любой строке или столбцу.

Изложенный метод применим к вычислению определителей 4-го и т.д. порядков.

Пример3. Вычислить определитель разложением по элементам первой строки

Решение: Элементы первой строки

А11 = (-1) 1+1 . М11 ==4+1=5.

М11 получили, вычеркнув первую строку и первый столбец.

А12 = (-1) 1+2 . М12 = — = — (8+3) = — 11.

М12 получили, вычеркнув первую строку и второй столбец.

А13 = (-1) 1+3 . М13 = = 2-3 = — 1.

М13 получили, вычеркнув первую строку и третий столбец.

= 1.5+2. (-11) — 2. (-1) = — 15

2. Язык программирования Паскаль

2.1 Структура программы

Язык Паскаль, начиная с момента своего создания Н. Виртом в 1971г., играет особую роль м в практическом программировании, и в его обучении. С непревзойденной четкостью в нем реализованы принципы структурного программирования. Трансляторы для программ, написанных на Паскале, разработаны для различных компьютеров и в настоящее время имеют множество разновидностей. Они являются компиляторами, обрабатывающими разработанные программистами тексты программ.

Существует много версий языка Паскаль. Различия между ними порой весьма велики. Так, базовая версия Вирта имеет многократно меньше возможностей, чем версия Турбо-Паскаль 7.0. (первая, фактически — язык для обучения будущих программистов, а вторая — орудие профессиональных разработчиков прикладного программного обеспечения) Тем не менее, это версии одного языка.

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

Схематически программа представляется в виде последовательности восьми разделов:

описание внешних модулей, процедур и функций;

описание типов переменных;

описание функций и процедур;

Каждый раздел начинается со служебного слова, назначение которого зафиксировано в Паскале так, что его нельзя употреблять для других целей. Так например, описание заголовка начинается со служебного слова program, описание констант -const, описание переменных — var, раздел операторов начинается с begin. Программа заканчивается служебным словом end, после которого ставится точка. Описания величин и операторы друг от друга отделяются знаком «точка с запятой».

2.2 Описание переменных

Для обозначения величин используются имена. Они состоят из латинских букв и цифр, причем первым символом должна быть буква.

Постоянные величины (константы) чаще всего бывают числовыми или символьными. Значения символьных констант заключаются в апострофы.

Постоянные величины описываются в разделе констант по схеме:

Данные, обрабатываемые программой, могут быть различных типов (числовые, символьные, строки, массивы и т.д.). Тип определяет область допустимых значений, а также операции и функции, применяемые к величинам этого типа. В Паскале имеется несколько встроенных простых типов со стандартными именами.

Группа типов, значения каждого из которых можно перечислить в некотором списке — скалярные типы. Для них определен порядковая функция ord (x) — номер значения х в списке; функция pred (x) -значение в списке, предшествующее х, и succ (x) — значение в списке, следующее за х.

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

Переменные описываются в раздел описания переменных по схеме:

Имена в списке разделяются запятой. В этом разделе может быть описано несколько переменных разного типа, например:

Var a,b,c,: real; k, i: integer; p: Boolean;

Над целыми величинами (тип integer) определены арифметические операции: * (умножение), div (деление нацело), mod (вычисление остатка от деления), +, — (сложение и вычитание); операции перечислены в порядке старшинства. Целый результат дают некоторые стандартные функции (аргумент заключается в круглые скобки):

-абсолютная величина целого хж

квадрат значения х;

целая часть вещественной величины х;

целое число, полученное из вещественного ч по правилу округления;

случайное целое число из интервала от 0 до х

Над вещественными величинами определены операции: *, +, -, /, а также стандартные функции, при вещественном или целом аргументе: abs (x), sqr (x), sin (x), cos (x), ln (x), sqrt (x) — квадратный корень из х, int (x) — целая часть из х, random — случайное число от 0 до 1. Указанные операции и функции дают вещественный результат.

Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными.

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

Эта роль выражения отражена в основном операторе языка — операторе присваивания. Он имеет следующий вид:

Тип переменной и тип выражения должны быть согласованы (величины принадлежат к одному и тому же типу).

В Паскале можно вводить с клавиатуры числовые и символьные данные. Имеются две встроенные процедуры (подпрограммы) ввода:

Процедура readln отличается от read только тем, что при завершении ввода курсор перемещается в начало строки.

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

Процедура write (x1,x2,x3,…xn) печатает на экран значения выражения из списка х1, х2,…хn. Для вывода на принтер используются те же процедуры с добавлением служебного слова lst перед списком выражений:

Пример: write (lst,’ нет решений‘);

2.3 Основные конструкции языка

Паскаль — это язык структурного программирования. Это значит, что программа должна выражать свои мысли очень дисциплинированно, с использованием малого числа четко оговоренных конструкций, используя как чередование их, так и вложения друг в друга. Не рекомендуется (хотя и возможно) использовать оператор перехода goto.

Реализация последовательности действий (т.е. структуры следования) выполняется с помощью составного оператора:

Раздел операторов в программе всегда является составным оператором. Служебные слова begin и end часто называют операторными скобками.

Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделения из составляющих их операторов одного, который и выполняется.

Структура и действие условного оператора таковы:

Условный оператор может быть неполным, т.е. не содержать часть “else «. В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.

Оператор варианта имеет следующую форму:

Выражение, стоящее между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы.

Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает.

Для реализации циклов в Паскале имеются три оператора. Если число повторений известно заранее, то удобно воспользоваться оператором цикла с параметром. В других случаях следует использовать операторы цикла с предусловием (цикл «пока») или с постусловием (цикл «до»).

Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:

Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.

Оператор цикла с постусловием имеет форму:

Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов цикла и т.д.

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

Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает. Действие эквивалентно действию следующего составного оператора:

Если в этом описании отношение =, а функцию succ на pred, то параметр в цикле будет убывать, в этом случае цикл с параметром принимает форму 2.

For : = downto do

2.4 Структуры данных

В Паскале кроме простых типов данных: real, integer, boolean, byte, char, программист по своему желанию может определить новый тип путем перечисления его элементов — перечисляемый тип, который относится к простым ординальным типам.

Описание перечисляемого типа выполняется по схеме:

Например, type operator = (plus, minus, multi, divide);

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

Type days = (mon, tue, wed, thu, fri, sat, sun);

Workdays= mon. fri;

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

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

Массив -это последовательность, состоящая из фиксированного числа однотипных элементов. Все элементы массива имеют общее имя и различаются индексами. Индексы можно вычислять, их тип должен быть ординальным. В описании массива используются служебные слова array и of. В описании массива указывается тип его элементов и типы их индексов.

2.4 Процедуры и функции

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

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

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

Описание формальных параметров может иметь вид

Оператор вызова процедуры имеет вид

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

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

заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:

function (список описаний формальных параметров): ;

раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;

обращение к функции — не оператор, а выражение вида:

3. Описание программы

3.1 Работа программы

Для решения систем линейных уравнений методом Гаусса и матричным методом создана программа на языке Паскаль. Программа запрашивает исходные данные (рис.1):

матрицу коэффициентов при неизвестных х;

столбец свободных членов

способ решения системы линейных уравнений — вариант 1 или 2.

Рисунок 3.1 Ввод исходных данных

В зависимости от выбранного вариант в программе происходит решение системы уравнений методом Гаусса (рис.2) или матричным методом (рис.3) с выдачей на экран результатов:

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

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

Программа состоит из 7 подпрограмм — 6 процедур и одной функции:

процедура Gauss обеспечивает решение системы линейных уравнений по методу Гаусса;

процедура matrica обеспечивает решение системы линейных уравнений матричным методом;

процедура PrintMatr2 предназначена для выдачи на экран исходной и обратной матрицы;

процедура MultString предназначена для умножения строк матрицы на число r;

процедура AddStrings прибавляет к i1-ой строке матрицы i2-ю, умноженную на число r;

процедура MultMatr предназначена для умножения матриц.

Функция Sign используется для изменения знака на противоположный при вычислении обратной матрицы.

Программа настроена на решение системы 3-х линейных уравнений с тремя неизвестными. Чтобы решить систему из 2-х уравнений с 2-мя неизвестными необходимо в программе изменить значение константы N с N=3 на N =2 (рис.4).

Рисунок 3.4. Фрагмент программы с описанием констант и переменных.

3.2 Блок-схема программы

Название: Разработка программы решения системы линейных уравнений
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 22:38:32 18 июля 2010 Похожие работы
Просмотров: 1002 Комментариев: 21 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать

Заключение

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

Список используемых источников и литературы

1. А.В. Могилев, Н.И. Пак, Е.К. Хеннер «Информатика», Москва, ACADEMA, 2000 г.

2. « Турбо Паскаль 7.0″, Киев, Торгово-издательское бюро BHV, 1997г.

3. С.А. Немнюгин, «Турбо ПАСКАЛЬ», Практикум, Питер, 2002г.

Приложение

«Решение систем линейных уравнений матричным способом и методом Гаусса»

type matr=array [1. n,1. n] of real;

mas=array [1. n] of real;

procedure PrintMatr2 (m,m1: matr; n,nz,nd: integer);

for i: =1 to n do

if (i=1) then write (np: 2,’: ‘)

for j: =1 to n do

write (m [i,j]: nz: nd); write (‘ ‘);

for j: =1 to n do

write (m1 [i,j]: nz: nd);

procedure MultString (var a,b: matr; i1: integer; r: real);

for j: =1 to n do

procedure AddStrings (var а,b: matr; i1, i2: integer; r: real);

for j: =1 to n do

a [i1,j]: =a [i1,j] +r*a [i2,j] ;

b [i1,j]: =b [i1,j] +r*b [i2,j] ;

procedure MultMatr (a,b: matr; var c: matr);

for i: =1 to n do

for j: =1 to n do

for k: =1 to n do

function sign (r: real): shortint;

if (r>=0) then sign: =1 else sign: =-1;

procedure GetMatr (a: matr; var b: matr; m, i,j: integer);

var ki,kj,di,dj: integer;

for ki: =1 to m-1 do

if (ki=i) then di: =1;

for kj: =1 to m-1 do

if (kj=j) then dj: =1;

b [ki,kj]: =a [ki+di,kj+dj] ;

procedure gauss (a: matr; b: mas; var x: mas; n: integer);

For k: =1 to N-1 do

For i: =k+1 to n do

For j: =k+1 to N do

writeln (‘Вывод результатов решения системы уравнений методом Гаусса’);

writeln (‘x [‘,n,’] =’,x [n]: 6: 2);

for i: = (n-1) downto 1 do

For j: =i+1 to n do

x [i]: = (b [i] +s) /a [i, i] ;

writeln (‘x [‘, i,’] =’,x [i]: 6: 2);

procedure matrica (a: matr; y: mas; n: integer);

for i: =1 to n do

for j: =1 to n do z [i,j]: =0;

for i: =1 to n do

for j: =1 to n do

for i: =1 to n do

взятую со знаком i-того элемента j-ой строки. Таким образом,

на месте элементова a [i, i] возникает сумма модулей элементов i-того

столбца (ниже i-ой строки) взятая со знаком бывшего элемента a [i, i],

равенство нулю которой говорит о несуществовании обратной матрицы >

for j: =i+1 to n do

AddStrings (a,z, i,j,sign (a [i, i]) *sign (a [j, i]));

if (abs (a [i, i]) >eps) then

MultString (a,z, i,1/a [i, i]);

for j: =i+1 to n do

AddStrings (a,z,j, i,-a [j, i]);

writeln (‘Обратной матрицы не существует. ‘);

if (a [n,n] >eps) then

for i: =n downto 1 do

for j: =1 to i-1 do

AddStrings (a,z,j, i,-a [j, i]);

else writeln (‘Обратной матрицы не существует. ‘);

writeln (‘Начальная матрица, обратная к ней матрица: ‘);

for i: =1 to n do s [i]: =0;

for i: =1 to n do

for j: =1 to n do

s [i]: =s [i] +z [i,j] *y [j] ;

writeln (‘Вывод результатов решения системы уравненй матричным способом’);

for i: =1 to n do write (‘ ‘, s [i]: 5: 2);

writeln (‘ввод матрицы коэффициентов при неизвестных х’);

for i: =1 to N do

for j: =1 to N do

write (‘ введите a [‘, i,’,’,j,’] => ‘);

writeln (‘ввод столбца свободных членов’);

for i: =1 to N do

write (‘ введите b [‘, i,’] => ‘);

writeln (‘введите вариант ‘);

writeln (‘ 1 — решение системы линейных уравнений методом Гаусса ‘);

write (‘ 2 — решение системы линейных уравнений матричным методом => ‘);


источники:

http://lfirmal.com/operacionnoe-ischislenie/

http://www.bestreferat.ru/referat-142074.html