Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Текст программы

Читайте также:
  1. A2.Укажите, в каком значении употребляется в тексте слово «участок» (предложение 4).
  2. C в тексте нет информации
  3. I. Прочитайте и переведите текст.
  4. II. ТЕКСТ И ЕГО ПЕРЕВОД
  5. SPA программы
  6. V. Прочитайте и переведите текст, используя данные ниже слова.
  7. VI. Прочитайте текст еще раз и

Оглавление

Оглавление. 2

Цель работы.. 3

Уравнение для проверки (1 вариант) 3

Тереоретическое обоснование. 4

Текст программы.. 5

Вывод программы.. 6


Цель работы

 

1. Программная реализация на языке С++ метода простых итераций для решения нелинейного уравнения.

2. Проверка работы составленной программы для заданной системы.

 

Уравнение для проверки (1 вариант)

 

 


 

Теоретическое обоснование

 

В основе метода заложено понятие сжимающего отображения. Определим терминологию:

Говорят, что функция осуществляет сжимающее отображение на , если

1.

2.

Тогда основная теорема будет выглядеть так:

Теорема Банаха (принцип сжимающих отображений). Если — сжимающее отображение на , то: 1. — корень; 2. итерационная последовательность сходится к этому корню; 3. для очередного члена справедливо .  

 

Поясним смысл параметра . Согласно теореме Лагранжа имеем:

Отсюда следует, что . Таким образом, для сходимости метода достаточно, чтобы

1.

.........

и так далее, пока


 

Текст программы

 

#include "stdafx.h"

#include <cstdio>

#include <cstring>

#include <cstdlib>

#include <cmath>

#include <iostream>

#include <iomanip>

using namespace std;

 

 

long double func (long double x)

{

return (acos(x*x));

}

 

 

long double method_simple_iteration(long double epsilon, unsigned __int64 &i)

{

long double x0=-1.0, xI = func(x0);

for (i = 1; abs(xI - x0) >= epsilon; ++i)

{

x0 = xI;

xI = func(x0);

}

 

return xI;

 

 

}

 

int _tmain(int argc, _TCHAR* argv[])

{

unsigned __int64 count_of_iteration = 0;

long double e = 0.0001;

cout << "Epsilon " << fixed << setprecision(15) << e << endl;

cout << "Simple iteration method " << fixed << setprecision(16) << method_simple_iteration(e,count_of_iteration) << "\t" << count_of_iteration << endl;

 

system("pause");

return 0;

}

 


 


Дата добавления: 2015-12-01; просмотров: 24 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.009 сек.)