Розробка пакета прикладних програм для обчислення визначника матриці

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

МІНІСТЕРСТВО ОСВІТИ

Курсова робота

з програмування

Розробка пакета прикладних програм для обчислення визначника матриці довільного порядку

Комсомольськ-на-Амурі 2010

Введення

Сі (англ. C) - стандартизований процедурна мова програмування, розроблений на початку 1970-х років співробітниками Bell Labs Кеном Томпсоном і Денисом Рітчі як розвиток мови Бі. Сі був створений для використання в операційній системі UNIX. З тих пір він був портований на багато інші операційні системи і став одним з найбільш використовуваних мов програмування. Сі цінують за його ефективність. Він є найпопулярнішою мовою для створення системного програмного забезпечення. Його також часто використовують для створення прикладних програм. Незважаючи на те, що Сі не розроблявся для новачків, він активно використовується для навчання програмуванню. Надалі синтаксис мови Сі став основою для багатьох інших мов.

Для мови Сі характерні лаконічність, сучасний набір конструкцій управління потоком виконання, структур даних і великий набір операцій.

Мова Сі був створений для програмістів, враховуючи їх інтереси, і багато разів перевірявся на практиці, перш ніж був остаточно реалізований. Саме тому мови Сі та Сі + + стали найбільш популярними серед програмістів високого рівня.

Мета роботи - розробка пакету прикладних програм для обчислення визначника матриці довільного порядку.

Метод дослідження - вивчення літератури, написання та налагодження програм на комп'ютері

1. Аналіз питання і постановка задачі

1.1 Вибір методу розв'язання

Обчислення визначника матриці можна зробити одним з наступних способів.

1. Метод зниження порядку. Знаходження визначника n-го порядку зводиться до обчислення п визначників (n - 1)-го порядку. Метод неефективний.

2. Знаходження визначника зводиться до обчислення одного визначника (n - 1)-го порядку. Для цього достатньо всі елементи, крім одного, в будь-якому стовпці (рядку) зробити рівними нулю.

3. Приведення визначника до трикутного вигляду. Полягає в такому його перетворення, коли всі елементи, що лежать по один бік головної діагоналі, стають нулями. Отриманий визначник дорівнює добутку елементів головної діагоналі:

4. Обчислення визначника і зворотної матриці за допомогою методу Гауса

5. Метод Крамера

Розглянемо метод Крамера створений Габріелем Крамером в 1750 році. Метод Крамера (правило Крамера) - спосіб розв'язання квадратних систем лінійних алгебраїчних рівнянь з ненульовим визначником основної матриці.

Матриця - це прямокутна таблиця, складена з чисел. Особливе місце серед матриць займають квадратні матриці. Розглянемо довільну квадратну матрицю порядку або просто :

.

Виявляється, що з такою матрицею завжди можна зв'язати цілком певну числову характеристику.

Визначення 1. Чисельна характеристика квадратної матриці називається її визначником.

Розглянемо матрицю першого порядку .

Визначення 2. Чисельної характеристики матриці першого порядку, тобто визначником першого порядку, називається величина її елемента .

Позначається визначник одним із символів .

Визначення 3. Визначником другого порядку, відповідним матриці другого порядку, називається число, рівне .

Позначається визначник одним із символів

.

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

Оскільки одна з форм позначення визначника і позначення матриці мають багато спільного (записується таблиця з чисел), то так само, як і в матриці, говорять про стовпцях, рядках і елементах визначника.

Після того як розглянуті визначники 1-го і 2-го порядків, можна перейти до поняття визначника будь-якого порядку. Але перед цим введемо поняття мінору.

Визначення 4. Мінором будь-якого елементу квадратної матриці порядку називається визначник порядку , Відповідний тієї матриці, яка виходить з первісної матриці в результаті викреслювання -Го рядка і -Го стовпця, на перетині яких стоїть елемент .

Зазвичай мінор елемента позначається .

Визначення 5. Визначником порядку , Відповідним матриці порядку , Називається число, рівне

.

Позначається визначник одним із символів

.

Наведене вираз являє собою правило обчислення визначника -Го порядку за елементами першого рядка відповідної йому матриці і по мінору елементів цього рядка, які є визначниками порядку . Для це правило дає:

.

У наведеному правилі обчислення визначника фігурує лише перший рядок. Виникає питання, а чи не можна обчислити визначник, використовуючи елементи інших рядків?

Теорема 1. Який би не був номер рядка ( ), Для визначника -Го порядку справедлива формула

,

звана розкладанням цього визначника по -Ої рядку.

Неважко помітити, що в цьому формулюванні ступінь за (-1) дорівнює сумі номерів рядка та стовпця, на перетині яких стоїть елемент .

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

.

Отримане вираження збігається з тим, яке було надане у визначенні, отже, для визначника 2-го порядку теорема доведена.

Для довільного дана теорема доводиться методом математичної індукції.

Отже, показано, що визначник може бути розкладений по будь-якому рядку. Виникає питання, а чи не можна зробити те ж саме, використавши довільний стовпець.

Теорема 2. Який би не був номер стовпця ( ), Для визначника -Го порядку справедлива формула

,

звана розкладанням цього визначника по -Му стовпцю.

Доведемо теорему для :

.

Цей вираз дорівнює величині визначника, введеної за визначенням.

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

Властивості визначників:

1. При перестановці двох стовпців визначник змінює знак на протилежний (властивість антісімметріі).

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

3. Множення всіх елементів якого-небудь стовпця на скаляр k рівнозначно множенню визначника на k (загальний множник елементів рядка або стовпця можна винести за знак визначника).

4. Множення матриці n-го порядку на скаляр k відповідає множенню її визначника на kn, тобто

det (k [A]) = kndet [A].

5. Значення визначника не зміниться, якщо до якого-небудь стовпцю додати інший стовпець, помножений на скаляр k.

6. Якщо два визначника однакових порядків різняться між собою тільки елементами j-го стовпця, то їх сума дорівнює визначнику, елементи j-го стовпця якого рівні сумам відповідних елементів j-х стовпців вихідних визначників, а інші елементи ті ж, що у вихідних (властивість лінійності ).

Опис методу Крамера

Для системи n лінійних рівнянь з n невідомими (над довільним полем)

з визначником матриці системи Δ, відмінним від нуля, рішення записується у вигляді

(I-ий стовпчик матриці системи замінюється стовпчиком вільних членів).

В іншій формі правило Крамера формулюється так: для будь-яких коефіцієнтів c1, c2, ..., cn справедливо рівність:

У такій формі формула Крамера справедлива без припущення, що Δ відмінно від нуля, не треба навіть, аби коефіцієнти системи були елементами цілісного кільця (визначник системи може бути дільником нуля у кільці коефіцієнтів). Можна також вважати, що або набори b1, b2 ,..., bn і x1, x2 ,..., xn, або набір c1, c2 ,..., cn складаються не з елементів кільця коефіцієнтів системи, а якого-небудь модуля над цим кільцем. В такому вигляді формула Крамера використовується, наприклад, при доказі формули для визначника Грама і Леми Накаями.

1.2 Вибір інструментальних засобів

Мови програмування - це формальні мови, спеціально створені для спілкування людини з комп'ютером. Кожна мова програмування рівно як і «природний» мову, має алфавіт, словниковий запас, свої граматику та синтаксис, а так само семантику.

Взаємодія синтаксичних і семантичних правил визначають ті чи інші поняття мови. На відміну від природних мов правила граматики і семантики для мов програмування, як і для всіх формальних мов, повинні бути ясно, однозначно і чітко сформульовані.

Метою даної курсової роботи є обчислення визначника матриці довільного порядку. Для цього розглянемо деякі мови програмування і виберемо більш зручний для нас.

Подвійна мова - в даний час програмістами не застосовується. Застосування цієї мови вимагає величезних витрат часу, є неймовірно трудомістким процесом.

Шістнадцятковий мова - спрощення за рахунок подання чотирьох двійкових цифр одній шістнадцятковій. Використовується як доповнення до мов високого рівня для програмування критичних до часу виконання фрагментів алгоритмів.

Мова Асемблера - призначений для представлення в зрозумілій символічній формі програм, написаних на машинній мові. Використовується для написання драйверів пристроїв, критичних з точки зору швидкодії, ділянок програм, а так само для написання стикувальних вузлів (мостів) між модулями програми, написаної на двох різних мовах.

Мова макроассемблера - розширення мови Асемблера. Дозволяє визначати і використовувати нові, більш потужні команди.

Мова Fortran на даний момент також використовують у навчальних цілях. Зустріти цю мову в застосуванні майже не реально, тому що він не дуже зручний і, як наслідок, не поширений.

Мова Basic розроблений в 1964 р. для використання новачками. Basic широко використовується в навчальних закладах для тренування базових навичок програмування в учнів. Він дуже популярний і існує безліч її діалектів, несумісних між собою.

Мова VBA (Visual Basic for Application) використовують для написання додатків, що використовують графічну середу, зокрема для додатків Microsoft Office, так як він є вбудованою мовою цих додатків.

І нарешті Мова C і, що володіє всіма необхідними можливостями для вирішення поставленого завдання. Крім того він був закладений в програму мого курсу навчання і тому добре мені відомий. Мова Сі - це універсальна мова програмування, для якого характерні економічність висловлювання, сучасний набір операторів і типів даних. Мова Сі не є ні мовою "дуже високого рівня", ні "великим" мовою, і не призначається для деякої спеціальної області застосування, але відсутність обмежень і спільність мови роблять його для багатьох завдань більш зручним і ефективним, ніж мови, ймовірно більш потужні.

Мова Сі є універсальною мовою програмування. Сама мова, проте, не пов'язаний з якоюсь однією операційною системою або машиною, і хоча його називають мовою системного програмування, так як він зручний для написання операційних систем, він може використовуватися для написання будь-яких великих обчислювальних програм, програм для обробки текстів і баз даних.

1.3 Вибір апаратних засобів

Мінімальні системні вимоги для більш - менш нормальної роботи:

Процесор Intel Pentium II/400 MHz

Microsoft Windows 98/2000 (SP2) / XP

128 MB RAM (рекомендується 256 MB)

3 G B (рекомендується 5 GB) вільного місця на жорсткому диску (для повної установки операційної системи та середовища для розробки програми)

CD-ROM

Монітор SVGA (роздільна здатність екрану 800x600, 256 кольорів)

Миша

1.4 Висновки по першому розділі

По даній главі можна зробити висновок, про те, що для обчислення визначника матриці довільного порядку рекомендується скористатися найбільш зручним методом, а саме методом Крамера.

Писати програму я буду на мові C і, який володіє всіма необхідними можливостями для вирішення поставленого завдання. Крім того він був закладений в програму мого курсу навчання і тому добре мені відомий.

Для більш нормальної роботи нам знадобляться:

Процесор Intel Pentium II/400 MHz

Microsoft Windows 98/2000 (SP2) / XP

128 MB RAM (рекомендується 256 MB)

3 G B (рекомендується 5 GB) вільного місця на жорсткому диску (для повної установки операційної системи та середовища для розробки програми)

CD-ROM

Монітор SVGA (роздільна здатність екрану 800x600, 256 кольорів)

Миша

2. Практична реалізація

2.1 Загальна структура програмного модуля

Виконувані дії

Назва функції

Приймає розмір матриці і значення її елементів, які вводить користувач з клавіатури

Блок введення

Обчислює рішення матриці A розмірності Razm при вільних членах B. У разі несумісності системи завершує роботу програми.

Kramer (A, B, Razm)

Обчислює детермінант матриці A розмірності Razm

Det (A, Razm)

Виводить на екран результати рішення

Блок виведення

2.2 Блок - схеми алгоритмів та їх опис

Розроблена в ході виконання курсової роботи програма, складається з тіла програми і двох функцій. Алгоритм виконання програми зображено на малюнку 1.

Рисунок 1 - Алгоритм виконання програми

Рисунок 2 - Алгоритм функції Kramer

Малюнок 3 - Алгоритм знаходження Det

2.3 Контрольний текстовий приклад

Далі наведено контрольний текстовий приклад результатів роботи програми.

2.4 Висновки по другому розділі

У другій главі нам представлена ​​загальна структура програмного модуля, Також складено структурні схеми підпрограм. Крім цього складено докладний алгоритм роботи програми та підпрограм. На закінчення наведено контрольний текстовий приклад програми.

Висновок

У ході виконання даного курсового проекту були розроблена програма на мові високого рівня C. А також вивчено можливості цієї мови.

Систематизовано і закріплені практичні навички використання ЕОМ, програмного забезпечення, існуючих засобів обслуговування системних програмістів, а також теоретичні знання з основних розділів курсу "Об'єктно-орієнтованого програмування".

При виконанні курсового проекту вироблено знайомство з реферативними журналами та іншими інформаційними джерелами по об'єктно-орієнтованого і системного програмування з метою аналізу стану розв'язуваної задачі.

Отримано практичні навички роботи в середовищі програмуванні С.

Бібліографічний список

  1. Алексєєв О.В. та ін Обчислювальна техніка та програмування. Практикум з програмування: Практ. посібник / В.Є. Алексєєв, А.С. Ваулин, Г.Б. Петрова; Під ред. А.В. Петрова. - М.: Вищ. шк., 1991. - 400 с.: Іл

  2. Глушаков С.В., Мельников І.В. Персональний комп'ютер: Навчальний курс / Худож. оформлювач А.С. Юхтман. - Харків: Фоліо; М.: ТОВ «Видавництво АСТ», 2001. - 520 с. - (Домашня б-ка).

  3. Козлов В.В., Можаєва Н.А., Зуєва Н.Г. Інформатика. Алгоритмізація і програмування. Мет. Вказівки і завдання до курсової роботи, 2006. - 32 с.

  4. Громов Ю.Ю., Татаренко С.І. Програмування на мові СІ:

Навчальний посібник. -Тамбов, 1995 .- 169 с.

Додаток

* Дата: 23/05/10 Час: 16:55 Версія: v.1.0 *

* Компілятор: BC v.3.1. *

* Лист 1/Лістов 5 *

* Проект: PROJECT2.PRJ *

* Файл: project.cpp *

* Назва: немає. *

* Призначення: вирішує матрицю довільного порядку методом Крамера *

* Описувач: void main (void) *

* Вхідні параметри: ні. *

* Вихідні параметри: ні. *

* Значення, що повертається: ні. *

* Зовнішні посилання: ні. *

* Програміст: Кравченко Д.С. Група: ІА-22 *

# Include <stdio.h>

# Include <conio.h>

/ / Знаходження детермінанта матриці методом трикутників

float Det (float ** A, int Razm)

{

float det = 0; / / Детермінант матриці

/ / Перерахунок суми позитивних "трикутників"

for (int i = 0; i <Razm; i + +)

{Int i1 = i +1;

float det_ = A [i] [0];

for (int j = 1; j <Razm; j + +)

{If (i1 == Razm) i1 = 0;

det_ *= A [i1 + +] [j];

}

det + = det _;

}

/ / Перерахунок суми негативних "трикутників"

for (i = 0; i <Razm; i + +)

{Int i1 = i +1;

float det_ = A [0] [Razm-1];

for (int j = Razm-2; j> -1; j -)

{If (i1 == Razm) i1 = 0;

det_ *= A [i1 + +] [j];

}

det -= det_;

}

return det;

}

* Дата: 23/05/10 Час: 16:55 Версія: v.1.0 *

* Компілятор: BC v.3.1. *

* Лист 2/Лістов 5 *

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
67.3кб. | скачати


Схожі роботи:
Опис пакета прикладних програм Microsoft Office
Особливості обчислення визначника матриці
Принципи розробки алгоритмів і програм для вирішення прикладних завдань
Аналіз оцінка та вибір користувачем пакетів прикладних програм для автоматизації своєї діяльності
Обчислення визначника методом Гауса
Розробка програми для квадратної матриці
Розробка програми для зрушення елементів матриці по верствам
Пакети прикладних програм
Вивчення роботи пакета програм Microsoft Internet Explorer
© Усі права захищені
написати до нас