Програмиране на уравнения

1 Постановка на проблем

2 Решаване на системата от уравнения по метода на Гаус

3 Решение на уравнението по методите на Нютон, Хорд

4 Разработване на блокова схема за решаване на система от уравнения по метода на Гаус

5 Разработване на блокова схема за решаване на уравнение по метода на Нютон

6 Разработване на блок-схема за решаване на уравнението по метода на Хорда

7 Език за програмиране Turbo Pascal

8 Разработване на програма за решаване на система от уравнения по метода на Гаус с помощта на Turbo Pascal

9 Разработване на програма за решаване на уравнение по метода на Нютон с помощта на Turbo Pascal

10 Разработване на програма за решаване на уравнение по метода на Chord с помощта на Turbo Pascal

Списък на използваните източници

В основата на конкретен език за програмиране е някаква водеща идея, която оказва значително влияние върху стила на съответните програми.

Исторически погледнато, първата беше идеята за структуриране на програми, според която програмистът трябваше да реши кои процедури ще използва в програмата си и след това да избере най-добрите алгоритми за изпълнение на тези процедури. Появата на тази идея е следствие от недостатъчното изучаване на алгоритмичната страна на изчислителните процеси, което е толкова характерно за ранните софтуерни разработки (40-те и 50-те години). Типичен пример за процедурно ориентиран език е Fortran, първият и все още един от най-популярните езици за програмиране. Последователното използване на идеята за процедурно структуриране на програмите доведе до създаването на обширни програмни библиотеки, съдържащи много сравнително малки процедури, от които, като тухли, можете да изградите „сградата“ на програмата.

Като напредък в изчислителната математикаакцентът в програмирането започна да се измества от процедурите към организацията на данните. Оказа се, че ефективното разработване на сложни програми изисква ефективни начини за контрол на правилното използване на данни. Контролът трябва да се извършва както на етапа на компилация, така и по време на изпълнение на програми, в противен случай, както показва практиката, трудностите при създаването на големи софтуерни проекти рязко нарастват. Ясното осъзнаване на този проблем доведе до създаването на Angola-60, а по-късно Pascal, Modula-2, C и много други езици за програмиране с повече или по-малко развити структури на типа данни. Логичната последица от развитието на тази посока беше модулният подход към разработването на програми, характеризиращ се с желанието да се "скрият" данни и процедури вътре в модула.

Започвайки с езика Simula-67, беше очертан нов подход в програмирането, който се нарича обектно-ориентирано програмиране (по-нататък OOP). Неговата водеща идея е стремежът да се свържат данните с процедурите, които обработват тези данни в едно цяло – обект. Характерна особеност на обектите е капсулирането (комбинирането) на данни и алгоритми за тяхната обработка, в резултат на което както данните, така и процедурите до голяма степен губят самостоятелното си значение.

1 Постановка на проблема

Целта на решаването на задачатакурсовата работа е да се автоматизира решаването на системата от уравнения по метода на Гаус, както и решението на уравнението по методите на Хорд и Нютон.

Изходната информация на задачатасе показва на екрана на монитора.

Входна информация за задачатаидва от потребителски вход за решаване на задачата

Прекратяване на решаването на задачатасе извършва, когато бъде пуснат нов софтуер, свързан с решението на тази задача, или нова версия на товапродукт.

2 Решение на системата от уравнения по метода на Гаус

Методът на Гаус е класически метод за решаване на система от линейни алгебрични уравнения (SLAE). Състои се от постепенно намаляване на реда на системата и изключване на неизвестни.

Въпреки че този метод сега обикновено се нарича метод на Гаус, той е бил известен преди C. F. Gauss. Първото известно описание на този метод е в китайския трактат "Математика в девет книги", съставен между 1 век пр.н.е. пр.н.е. и II век. н. д.

Описание на метода

Нека оригиналната система изглежда така

Тогава, съгласно свойството на елементарни трансформации над низове, тази система може да бъде сведена до стъпаловидна форма:

метода

Прехвърляме свободните променливи отвъд знаците на равенството и разделяме всяко от уравненията на системата на неговия коефициент в най-ляво

Ако на свободните променливи на системата (2) са дадени всички възможни стойности и основните променливи се изчисляват чрез тях, тогава ще получим всички решения. Тъй като тази система е получена чрез елементарни трансформации върху оригиналната система (1), тогава, съгласно теоремата за еквивалентност за елементарни трансформации, полученото от нас решение е решение на система (1).

1: Ако в съвместна система всички променливи са главни, тогава такава система е определена.

2: Ако броят на променливите в системата надвишава броя на уравненията, тогава такава система е или неопределена, или непоследователна.

Условие за съвместимост.

Горното условие

Спомнете си, че рангът на съвместната система е рангът на нейната основна матрица (или разширена, тъй като те са равни).

Алгоритъмът за решаване на SLAE по метода на Гаус е разделен на два етапа.

1) На първия етап се извършва така нареченият директен ход, когато отелементарни трансформации над низове водят системата до стъпаловидна или триъгълна форма или установяват, че системата е непоследователна. А именно, сред елементите на първата колона на матрицата се избира ненулев, той се премества в най-горната позиция чрез пермутация на редовете и първият ред, получен след пермутацията, се изважда от останалите редове, умножавайки го по стойност, равна на съотношението на първия елемент на всеки от тези редове към първия елемент на първия ред, като по този начин колоната под него се нулира. След извършване на посочените трансформации, първият ред и първата колона се задраскват мислено и продължават, докато остане матрица с нулев размер. Ако при някои от итерациите сред елементите на първата колона не е намерен ненулев, тогава преминете към следващата колона и извършете подобна операция.

2) На втория етап се извършва така нареченото обратно движение, чиято същност е да се изразят всички получени основни променливи по отношение на неосновни и да се изгради фундаментална система от решения или, ако всички променливи са основни, тогава числено изразете единственото решение на системата от линейни уравнения. Тази процедура започва с последното уравнение, от което се изразява съответната основна променлива (а там има само една) и се замества в предишните уравнения и така нататък, изкачвайки се по „стъпалата“. Всеки ред съответства на точно една основна променлива, така че на всяка стъпка, с изключение на последната (най-горната), ситуацията точно повтаря случая на последния ред.

В най-простия случай алгоритъмът изглежда така:

уравнения

3) Обратно движение. От последното ненулево уравнение изразяваме основната променлива чрез небазисните и я заместваме в предишните уравнения. Повтаряне на тази процедура за цялата базапроменливи, получаваме фундаменталното решение.

В допълнение към аналитичното решение на SLAE, методът на Гаус се прилага и за:

1) намиране на матрица, обратна на дадената (единична матрица със същия размер като оригиналната се присвоява на матрицата отдясно):

2) определяне на ранга на матрица (според следствието от теоремата на Кронекер-Капели, рангът на матрицата е равен на броя на нейните главни променливи);

3) числено решение на SLAE в компютърните технологии (поради грешката на изчислението се използва методът на Гаус с избора на основния елемент, чиято същност е да се избере на всяка стъпка като основна променлива тази, за която сред останалите редове и колони след изтриване има максимален модулен коефициент).

За разлика от матричния метод и метода на Крамер, методът на Гаус може да се прилага към системи от линейни уравнения с произволен брой уравнения и неизвестни. Същността на метода е последователното елиминиране на неизвестни.