Курсовая работа: Разработка программы решения системы линейных уравнений
Название: Разработка программы решения системы линейных уравнений Раздел: Рефераты по информатике, программированию Тип: курсовая работа Добавлен 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 — решение системы линейных уравнений матричным методом => ‘);
Привет студент
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
Приднестровский государственный университет им. Т.Г. Шевченко
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
КУРСОВАЯ РАБОТА
«Информатика и программирование»
тема: «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ»
студентка группы ИТ13ДР62ИС1
Арабаджи Федор Иванович
ЗАДАНИЕ
на курсовую работу по дисциплине
«ПРОГРАММИРОВАНИЕ»
Студента группы ________ — ___________________
утверждена протоколом кафедры _________ № _____ от «____» ____________ 20___ г.
Цель курсовой работы:
Задачи курсовой работы:
Результаты курсовой работы:
График обязательных консультаций:
Дата сдачи записки на регистрацию «_____» __________20__ г.
Дата защиты курсовой работы «_____» __________20__ г.
Задание принял к исполнению «_____» __________20__ г. ___________/________________/
Руководитель работы ______________________ /________________/
СОДЕРЖАНИЕ
2 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ………………………………….
2.3 Метод обратной матрицы…………………………………………….
3 РУКОВОДСТВО ПРОГРАММИСТА………………………………………..
3.1 Введение и общие сведения……………………………………………
3.2 Структура программного продукта………………………………….
3.4 Описание исходных текстов программного продукта…………….
3.5 Аппаратная и программная часть…………………………………….
3.6 Результаты тестирования и опытной эксплуатации………………….
4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ……………………………………….
4.3 Установка программного продукта……………………………….…..
4.4 Запуск и работа с программным продуктом…………………….……
4.5 Удаление программного продукта…………………………………….
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ…………………………….
Введение
Последние десятилетия характеризуются бурным развитием вычислительной техники. Расширяются области применения вычислительных машин и совершенствуются методы их использования. Созданы универсальные языки программирования и разработаны мощные операционные системы.
Сейчас невозможно представить себе какую-либо область деятельности, обходящуюся без применения компьютерной техники.
Компьютеры используются при проведении различных инженерных расчётов, при решении экономических задач, в процессе управления производством, при получении оценок производственных ситуаций и во многих других случаях.
Решение систем линейных алгебраических уравнений является одной из основных задач линейной алгебры. Эта задача имеет важное прикладное значение при решении научных и технических проблем. Кроме того, является вспомогательной при реализации многих алгоритмов вычислительной математики, математической физики, обработки результатов экспериментальных исследований.
Алгебраическое уравнение называется линейным, если оно содержит переменные только в первой степени и не содержит произведений переменных.
Решение систем линейных алгебраических уравнений является одной из фундаментальных задач математики. В частности, она возникает при решении краевых задач для дифференциальных и интегральных уравнений, к которым сводятся реальные проблемы техники, физики, экономики, математики и др. Подобные программы довольно популярны, в особенности среди пользователей глобальной сети Интернет. Они могут быть широко применимы в среде образовательных учреждений. Например, преподавателю необходимо проверить десятки работ студентов в короткий срок или составить варианты контрольных работ, помочь студенту в решении систем линейных уравнений и в их объяснении, так как программа будет содержать краткую теоретическую справку.
Чтобы быстро справится с решением системы линейных уравнений, можно воспользоваться средствами вычислительной техники – написать программу на языке программирования.
Учитывая современные возможности, можно облегчить процесс решения систем линейных уравнений. Данную задачу можно выполнить программно для упрощения и автоматизации процесса решения систем линейных уравнений методом Гаусса, методом Крамера, а также методом обратной матрицы с помощью Windows-приложения, реализованного средствами языка высокого уровня С#.
Данный продукт найдёт своё применение в сфере образования. В частности, например, учащиеся с помощью данной программы смогут проверить правильность решения систем линейных уравнений.
1 постановка задачи
В данной курсовой работе необходимо создать программный продукт при помощи Windows Forms на языке C#, который представлял бы возможность:
- ввода данных с клавиатуры или считывания их из файла с представлением права выбора пользователю;
- решения системы линейных уравнений;
- запись данных в файл;
- доступа к файлу, куда записываются входные и выходные данные.
Программа должна выполнять решение систем линейных уравнений методом Гаусса, методом Крамера или методом обратной матрицы.
Окно программы должно содержать:
- пункты меню: Файл, Правка, Примеры, Справка, О программе;
- поле выбора метода решения системы линейных уравнений;
- поле выбора количества уравнений в системе;
- поля для входных и выходных данных;
- кнопки операций.
Входными данными являются числа вещественного типа, введенные с клавиатуры или считанные из файла. Программа распознает входные данные и производит решение системы одним из выбранных методов.
Результатом работы программы служит отображение получившейся матрицы или определителя (в зависимости от выбранного способа) и корни системы уравнений, полученные в результате решения системы.
2 описание предметной области
Решение систем линейных алгебраических уравнений – одна из фундаментальных задач математики. Система m линейных алгебраических уравнений с n неизвестными (или, линейная система, также употребляется аббревиатура СЛАУ) в линейной алгебре — это система уравнений вида (Рисунок 1)
Рисунок 1- Система уравнений
В системе уравнений (Рисунок 1) m является количеством уравнений, а n – количество неизвестных. x1, x2, … xn – это неизвестные, которые надо определить. a11, a12, … amn – коэффициенты системы, а b1, b2, … bm – свободные члены. Индексы коэффициентов (aij) системы обозначают номера уравнения (i) и неизвестного (j), при котором стоит этот коэффициент, соответственно.
Существуют следующие способы решения систем линейных уравнений:
– метод обратной матрицы.
2.1 Метод Гаусса
Метод Гаусса – классический метод решения системы линейных алгебраических уравнений. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы. Хотя в настоящее время данный метод повсеместно называется методом Гаусса, он был известен и до К.Ф. Гаусса. Первое известное описание данного метода приведено в китайском трактате «Математика в девяти книгах», составленном между первым веком до н. э. и вторым веком н. э.
Далее приведено более подробное описание метода. Пусть исходная система будет вида (Рисунок 2):
Рисунок 2 — Исходная система уравнений
На рисунке 2.1 указана матрица A, вектор x и вектор b. Матрицей А называется основная матрица системы, вектором x – столбец неизвестных, вектором – столбец свободных членов.
Рисунок 2.1 — Матрица A
Согласно свойству элементарных преобразований над строками, основную матрицу этой системы можно привести к треугольному (или ступенчатому) виду (эти же преобразования нужно применять к столбцу свободных членов), что показано на рисунке 2.2
Рисунок 2.2 — Матрица треугольного вида
При этом будем считать, что базисный минор (ненулевой минор максимального порядка) основной матрицы находится в верхнем левом углу, то есть в него входят только коэффициенты при переменных xj1, … , xjr.
Тогда переменные xj1, … , xjr называются главными переменными. Все остальные называются свободными.
Если хотя бы одно число βi ≠ 0, где i > r, то рассматриваемая система несовместна, то есть у неё нет ни одного решения.
Пусть βi ≠ 0 для любых i > r. Перенесём свободные переменные за знаки равенств и поделим каждое из уравнений системы на свой коэффициент при самом левом x (см. рисунок 2.3):
Рисунок 2.3- Несовместная система
Если свободным переменным системы (рисунок 2.3) придавать все возможные значения и решать новую систему относительно главных неизвестных снизу вверх (то есть от нижнего уравнения к верхнему), то мы получим все решения этой системы линейных алгебраических уравнений. Так как эта система получена путём элементарных преобразований над исходной системой, то по теореме об эквивалентности при элементарных преобразованиях системы (рисунок 2) и (рисунок 2.3) эквивалентны, то есть множества их решений совпадают.
2.2 Метод Крамера
Метода Крамера – способ решения систем линейных алгебраических уравнений с числом уравнений равным числу неизвестных с ненулевым главным определителем матрицы коэффициентов системы, причём для таких уравнений решение существует и единственно. Назван по имени Габриэля Крамера, предложившего этот метод в 1750 г.
Рисунок 2.4 — Система линейных уравнений
Для системы n линейных уравнений (рисунок 2.4) с n неизвестными с определителем матрицы системы ≠ 0, решение записывается по формуле показанном на рисунке 2.5:
Рисунок 2.5 — Нахождение решения
i-ый столбец матрицы системы заменяется столбцом свободных членов.
2.3 Метод обратной матрицы
Метод обратной матрицы – метод решения системы линейных алгебраических уравнений, использующий понятие обратной матрицы.
Обратная матрица – такая матрица A −1 , при умножении на которую, исходная матрица A даёт в результате единичную матрицу E (формула 2.6).
Обратная матрица находится по формуле 2.7.
В формуле 2.7 det обозначает определитель.
Если необходимо решить систему линейных уравнений Ax = b, где b – ненулевой вектор, в который входят свободные члены, x – искомый вектор. Если обратная матрица A -1 существует, то x = A -1 b. В противном случае либо размерность пространства решений больше нуля, либо их нет вовсе.
3 ПРОграммная реализация решения задачи
3.1 Введение и общие сведения
Одна из основных задач линейной алгебры – решение систем линейных алгебраических уравнений. Эта задача имеет важное прикладное значение при решении научных и технических проблем. Кроме того, является вспомогательной при реализации многих алгоритмов вычислительной математики, математической физики, обработки результатов экспериментальных исследований.
Программа «MATrix» предназначена для решения систем линейных алгебраических уравнений тремя методами:
- методом Гаусса;
- методом Крамера;
- методом обратной матрицы.
Данный программный продукт значительно упрощает получение корней систем линейных уравнений.
3.2 Структура программного продукта
В процессе разработки программного продукта были реализованы следующие формы:
- Formcs – форма приветсвия;
- MATrix.cs – форма, обеспечивающая решение систем линейных алгебраических уравнений методом Гаусса, методом Крамера или методом обратной матрицы по выбору пользователя;
- About.cs – форма, содержащая информацию о программном продукте.
На рисунке 3.1 изображена функциональная схема.
ВВЕДЕНИЕ
Данный проект о сравнении эффективности решения систем линейных уравнений различными методами и об их аналогах в программах на ЯП ABC Pascal и С++.
Проблема: Но каким способом пользоваться, если нет явных свойств системы уравнений? Есть способы, которые мы не изучаем в школе, такие как методы Гаусса и Крамера. Актуальность – на экзаменах в заданиях встречаются системы уравнений, и знать дополнительный метод их решения не помешает никому; применение опыта решения СЛУ различными способами способствует развитию логической культуры.
Цель. Разработка наиболее рациональной программы для решения СЛУ различной размерности.
изучить основные методы решения СЛУ
изучить метод Крамера и метод Гаусса для решения СЛАУ различной размерности
сравнить рациональность применения методов
сделать программы на Pascal
создать программу на С++
Методы исследования:Сравнение, анализ, обобщение, эксперимент.
Продукт: рациональная программа для решения СЛУ с дополнительным функционалом.
1. Системы линейных уравнений
Определение.Система (1), где х, у – неизвестные, a 1, a 2, b 1, b 2, с1, с2 – коэффициенты системы (данные числа), называется системой двух линейных уравнений с двумя неизвестными.
Существует три способа решения систем линейных уравнений: графический, подстановки и сложения.
2. Основные методы решения систем линейных уравнений 2-го порядка
При решении таких систем возможны следующие случаи:
система имеет единственное решение – прямые пересекаются,
система не имеет решений – прямые параллельны,
система имеет бесчисленное множество решений – прямые совпадают.
2.1. Графический метод
АЛГОРИТМ: Способ заключается в построении графика каждого уравнения, входящего в данную систему, в одной координатной плоскости и нахождении точки пересечения этих графиков. Координаты этой точки (x; y) и будут являться решением данной системы уравнений.
Если прямые, являющиеся графиками уравнений системы, пересекаются, то система уравнений имеет единственное решение.
Если прямые, являющиеся графиками уравнений системы, параллельны, то система уравнений не имеет решений.
Если прямые, являющиеся графиками уравнений системы, совпадают, то система уравнений имеет бесконечное множество решений.
2.2. Метод подстановки
Заключается в том, что используя одно из уравнений, выражаем y, а затем подставляем полученное выражение во второе уравнение, вместо y. Решаем уравнение с одной переменной, находим x, а затем и y.
Выразить y в первом уравнении.
Подставить выражение, которое получилось в первом (то есть, чему равно y ), во второе уравнение вместо y.
Найти x, используя полученное уравнение.
Найти y, используя уравнение, которое получили при первом действии.
Выполнить проверку решения.
2.3. Способ сложения
Алгоритм решения системы линейных уравнений с двумя неизвестными способом сложения:
1. Если требуется, путем равносильных преобразований уравнять коэффициенты при одной из неизвестных переменных в обоих уравнениях.
2. Складывая или вычитая полученные уравнения получить линейное уравнение с одним неизвестным
3. Решить полученное уравнение с одним неизвестным и найти одну из переменных.
4. Подставить полученное выражение в любое из двух уравнений системы и решить это уравнение, получив, таким образом, вторую переменную.
5. Сделать проверку решения.
3. Метод Крамера для решения СЛУ
1) Решим систему:
Умножим первое уравнение этой системы на b 2≠0, а второе уравнение на (- b 1)≠0, тогда данная система приобретает вид:
Сложим уравнения полученной системы (при этом у нас получится неизвестное у):
если выражение ≠0, то можно выразить неизвестное х:
подставим полученное значение х в одно из уравнений системы и найдем значение у:
Условимся выражение обозначать . Тогда выражение
Числа a 1, a 2, b 1, b 2 – элементы определителя, a 1, b 2 – главная диагональ, a 2, b 1 – вспомогательная диагональ. Чтобы вычислить определитель второго порядка достаточно найти разность произведений элементов главной и вспомогательной диагоналей.Обозначения:
Определитель ∆ x получается из ∆ заменой элементов первого столбца свободными членами системы; аналогично получается ∆ y .
Т аблица. Условия, определяющие число решений системы линейных уравнений
В приложении №1 – примеры решения СЛУ 2-го порядка методом Крамера.
4. Метод Гаусса для решения СЛУ
Метод Гаусса – наиболее мощный и универсальный инструмент для нахождения решения любой системы линейных уравнений. Правило Крамера и матричный метод непригодны в тех случаях, когда система имеет бесконечно много решений или несовместна. А метод последовательного исключения неизвестных в любом случае приведет нас к ответу.
5. Сравнение методов решений
Для оценки рациональности использования того или иного метода в программирование при решении систем уравнений 2-го порядка взял следующие критерии:
— скорость выполнения задания;
Для объективности брал в равной мере как примеры «удобные» для решения тем или иным способом так и «неудобные» и сравнивали их решение с решением в программах на ЯП Pascal . Каждый критерий оценен по 10-бальной шкале.
Подробное решение и сравнение, а также выводы по каждому сравнению можно увидеть в приложении №3.
5.1. Метод Крамера и графический метод
Метод Крамера во всех примерах оказался гораздо точнее. Графический метод – специфический и служит больше для визуального представления решения систем линейных уравнений в виде пересечения двух графиков.
5.2. Метод Крамера и метод подстановки
Мне показались два метода равнозначно удобными. Но анализ полученных данных не совпал с субъективным мнением. И хоть по скорости выполнения способ подстановки обогнал метод Крамера, но более точный результаты у последнего. Точность в способе подстановки пострадала из-за запутанности решений некоторых систем линейных уравнений.
5.3. Метод Крамера и способ сложения
Эти два метода показались практически равнозначны. Более сложные системы с дробными коэффициентами при неизвестных удобнее решать все же методом Крамера, но если коэффициенты натуральные числа, то гораздо быстрее система решается способом сложения.
Получаем, что решение СЛУ 2 порядка способом сложения или способом подстановки дают точное решение, что не всегда удается достичь при решении графически. Но, решая СЛУ более 2 порядка этими способами тяжело, удобнее воспользоваться методом Крамера или методом Гаусса.
5.4. Метод Крамера и метод Гаусса
Метод Гаусса быстрее м-да Крамера. По точности — одинаковы. Считать для СЛУ размерности большей, чем 2 на 2 – неудобно вручную.
А что если написать программы для решения систем линейных уравнений методом Крамера/методом Гаусса? Именно это я и сделал целью нашего проекта.
Средой разработки была выбрана ABC Pascal .
6. Разработка программ
6.1. Разработка программ на Pascal
Выяснил на собственном опыте, что считать СЛУ больших размерностей неудобно вручную. Тогда для решения систем линейных уравнений размерности большей, чем 2 на 2, было решено разработать программы на ЯП Pascal ABC и сравнить их друг с другом.
6.1.1. Разработка программы. Способ сложения
В этой программе использовал 3 массива в типе real , оператор If , циклы for . Полностью с программой можно познакомиться в Приложении2. п.1
Пример работы программы для СЛУ:
— Далее вводим свободные члены
— Программа выводит на экран корни системы
6.1.2. Разработка программы. Способ подстановки
В этой программе использовал 3 массива в типе real , оператор If , циклы for . Полностью с программой можно познакомиться в Приложении2. п.2
Пример работы программы для СЛУ:
6 .1.3. Разработка программы. Метод Крамера
В этой программе использовал оператор If . Полностью с программой можно познакомиться в Приложении2. п.3
Пример работы программы для СЛУ:
6.1.4. Разработка программы. Метод Крамера для n -размерности
В этой программе использовал 3 массива в типе real , оператор If , циклы for . Полностью с программой можно познакомиться в Приложении2. п.4
Далее вводим коэффициенты
Потом вводим свободные члены
6.1.5. Разработка программы. Метод Гаусса для n -размерности
В этой программе использовал 3 массива в типе real , оператор If , циклы for . Полностью с программой можно познакомиться в Приложении2. п.5
Далее вводим расширенную матрицу
Программа выдает решение
6.1.6. Сравнение. Метод Крамера и Гаусса на листочке и в Pascal
Применение методов Крамера или Гаусса во всех примерах на ЯП Pascal оказались гораздо точнее, но уступали в СЛУ размерностью 2 x 2 скоростью.
В результате выполненной работы получил, что программа неудобна для использования для решения СЛУ маленькой размерности, но при этом выигрывает для систем линейных уравнений, начиная с 3 порядка.
6.1.7. Сравнение программ на Pascal .
Я создал программы на метод подстановки, на метод сложения, на метод Крамера и на метод Гаусса (для СЛУ 2 порядка) и на метод Крамера и на метод Гаусса (для систем линейных уравнений от 2 до 10 размерности). Из них более рациональными в использовании кажутся две последние, т.к. можно использовать для СЛУ любого порядка (до 10-го). Поэтому их я и решил сравнить.
С помощью компиляции в PascalABC . NET сравнили решение СЛУ в программе «Крамер на n -размерность» с решением программе «Гаусс на n -размерность». Сравнивали по скорости выполнения данных:
Как видно из графика, нашей программе по методу Гаусса требуется немного больше времени. Но мне нравится использовать обе программы. И для обычного пользователя данная «потеря» времени незначительна и даже незаметна. Поэтому предлагаю проверять свои решения СЛУ с помощью этих программ!
Я выяснил на собственном опыте (см. приложение), что считать СЛУ больших размерностей неудобно вручную. Тогда для решения систем линейных уравнений размерности большей, чем 2 на 2, решил разработать программу на ЯП С++.
6.2. Разработка программы на С++.
Но ЯП Pascal является учебным и не предназначен для создания мощных проектов. Поэтому перешел на С++.
6.2.1. Реализация метода Крамера на С++.
Я решил выбрать метод Крамера для написания программы на С++, так как он показался легко записываемым в качестве формул. Написал программу на размерность до 4 и проверили ее, сравнив с решением на листочке и в предыдущей программе на Pascal .
Далее дополнил программу дополнительными функциями для того, чтобы она была более интересной. Добавленные функции: калькулятор, нахождение тригонометрических функций (косинус, синус, тангенс, котангенс), решение квадратных уравнений, нахождение большего или меньшего числа из множества, нахождения четных и нечетных чисел из множества, побайтовый сдвиг вправо и побайтовый сдвиг влево, нахождение значения log по основанию 2 и по основанию 10, таблица умножения и таблица квадратов, функция – запоминание числа, перевод из десятичной системы счисления в другую (начиная с двоичной и заканчивая 9-ой), нахождение корня числа и возведение в степень.
Дальше встал вопрос об оформлении приложения. Для этого использовались функции изменения размера текста, цвета фона и также стирание фрагментов текста в консоли. Для создания рамок была использована капелька хитрости.
6.2.2. Метод Крамера на листочке и в С++
Применение метода Крамера во всех примерах на ЯП С++ оказались гораздо точнее, но уступали в СЛУ размерностью 2 x 2 скоростью. В результате выполненной работы я пришел к аналогичному выводу (что и в результате с программой на Pascal ) — программа неудобна для использования для решения СЛУ маленькой размерности, но при этом выигрывает для систем линейных уравнений, начиная с 3 порядка.
6.2.3. Мнение пользователей.
Программу дал опробовать нашим ровесникам и учителям нашей школы. В тестировании программы приняло участие 30 учащихся 8 – 10 классов и 7 учителей. От каждого услышал, что нужно добавить и, что нужно улучшить. Я всегда прислушиваюсь к советам пользователей и поэтому у меня часто появляются новые версии.
6.2.4. Экономическая и экологическая оценка.
Экономический аспект включает: амортизацию компьютерной техники, электричество, оплату интернет-трафика. Бумагу, картридж, интернет, ПО – все предоставила школа (бесплатно).
Потребовались значительные временные затраты – с августа 2018г. по текущее время: сначала изучали СЛУ, повторяли методы, изучаемые в школе, изучили м-ды Крамера и Гаусса, отработали навыки решения СЛУ, написали программы на ЯП Паскаль, проанализировали, протестировали, изучили С++, написали программу, протестировали на группе людей, проанализировали, доработали, опять тестировали, дорабатывали (по текущее время), для вставки дополнительных функции в МегаКалькулятор, познакомились с основными тригонометрическими, логарифмическими функциями, повторили степенную и квадратичную, повторили системы счисления и перевод в из одной СС в другую и т.д. Получилось, что в неделю тратится в среднем по 12ч на работу над проектом.
Использование моей программы (см. Приложение 2, п.6) пользователем уменьшит время проведенное за компьютером, нагрузку на глаза и опорно-двигательный аппарат; сформирует навыки самоконтроля.
ЗАКЛЮЧЕНИЕ
В результате выполнения работы:
— Изучена литература по методам решения систем линейных уравнений.
— Подобраны и решены системы линейных уравнений 2 и более порядка основными методами, изучаемыми в школе.
— Подобраны и решены СЛУ 2 и более порядка методом Крамера и Гаусса.
— Было проведено сравнение типовых методов решения СЛУ 2-го порядка с методом Крамера, Гаусса и произведена оценка рациональности использования.
— Были созданы программы на ЯП Pascal .
— Была разработана программа на ЯП С++ (Мега калькулятор).
Метод Крамера и/или метод Гаусса позволяет существенно сократить время нахождения решений систем линейных уравнений, избежать «лишних» записей в сложных случаях. А в случае сравнения с графическим методом – дает точное решение (что не является его преимуществом перед остальными двумя методами, т.к. они дают тоже точное решение).
Мне кажется, метод Крамера и метод Гаусса доступен для изучения учащимся 8 классов при решении систем линейных уравнений 2 порядка и может быть предложен ученикам как дополнительный метод. А разработка программ для решения СЛУ – для кружковых и факультативных занятий по информатике.
МегаКалькулятор создан для использования в качестве самоконтроля и может пригодиться при использовании многих тем в алгебре и информатики.
Список литературы. Интернет-ресурсы.
Список литературы
1. Алгебра: дидактические материалы для 7 кл. / Л.И.Званич, Л.В. Кузнецова, С.Б. Суворова, — 12-е изд., дораб. – М.: Просвещение, 2007. – 160 с.
2. Математика: Справ.материалы: Кн.для учащихся. – М.: Просвещение, 1988. – 416с.
3. Сборник задач по алгебре. Часть II . Для 8 – 10 классов средней школы. / П.А.Ларичев, — уч.-изд. –М.: Государственное учебно-педагогическое издательство Министерства Просвещения РСФСР, 1952
4. Сборник заданий для проведения письменного экзамена по математике в восьмых классах общеобразовательных школ РСФСР. –2-е изд., дораб. — М.: Просвещение, 1985. – 64 с.
Список используемых Интернет-ресурсов
https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%9A%D1%80%D0%B0%D0%BC%D0%B5%D1%80%D0%B0 – метод Крамера
http://www.mathematics-repetition.com/6-klass-mathematics/6-9-1-reshenie-sistem-lineynh-uravneniy-grafitcheskim-sposobom.html — графический метод
http://school-assistant.ru/?predmet=algebra&theme=reshenie_sistem_2_lin_uravnenij_2_perem_podstanovki – метод подстановки
http://www.nado5.ru/e-book/sposob-slozheniya — способ сложения
https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0 – метод Гаусса
https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%83%D1%81%D1%81,_%D0%9A%D0%B0%D1%80%D0%BB_%D0%A4%D1%80%D0%B8%D0%B4%D1%80%D0%B8%D1%85 – Карл Фридрих Гаусс
ПРИЛОЖЕНИЯ
Приложение №1. Примеры решения систем линейных уравнений 2-го порядка методом Крамера
Система имеет единственное решение
Коэффициенты пропорциональны, а свободные члены не подчинены той же пропорции. Система не имеет решений.
Одно из уравнений есть следствие другого (например, второе получается из первого умножением на 2). Система сводится к одному уравнению и имеет бесчисленное множество решений, содержащихся в формуле
Приложение №2. Программы
Подбор систем линейных уравнений и их прорешивание всеми изучаемыми способами и методами занял наибольшее количество времени. Основные СЛУ, используемые нами, приведены в тетради. Здесь приведу код Мега калькулятора и первые программы в Паскале
Var Q: array [ 1..100000 ] of real ;
W: array [ 1..100000 ] of real ;
D: array [ 1..100000 ] of real ;
http://privetstudent.com/kursovyye/kompiuternye-tekhnologii-kursovye/4172-programmnaya-realizaciya-resheniya-sistem-lineynyh-uravneniy.html
http://school-science.ru/8/4/41439