.

Метод касательных (метод Ньютона)

Язык: русский
Формат: реферат
Тип документа: Word Doc
0 1120
Скачать документ

Содержание

TOC \o “1-3” \h \z HYPERLINK \l “_Toc41451433” Содержание
PAGEREF _Toc41451433 \h 1

HYPERLINK \l “_Toc41451434” Используемая литература PAGEREF
_Toc41451434 \h 1

HYPERLINK \l “_Toc41451435” Метод Ньютона (касательных). PAGEREF
_Toc41451435 \h 2

HYPERLINK \l “_Toc41451436” Описание PAGEREF _Toc41451436 \h 2

HYPERLINK \l “_Toc41451437” Блок-схема алгоритма PAGEREF
_Toc41451437 \h 3

HYPERLINK \l “_Toc41451438” Листинг программы PAGEREF _Toc41451438
\h 4

HYPERLINK \l “_Toc41451439” Результаты работы программы PAGEREF
_Toc41451439 \h 6

HYPERLINK \l “_Toc41451440” Пример №1 PAGEREF _Toc41451440 \h 6

HYPERLINK \l “_Toc41451441” Пример №2 PAGEREF _Toc41451441 \h 6

HYPERLINK \l “_Toc41451442” Пример №3 PAGEREF _Toc41451442 \h 7

HYPERLINK \l “_Toc41451443” Метод итераций. PAGEREF _Toc41451443 \h
8

HYPERLINK \l “_Toc41451444” Блок-схема алгоритма PAGEREF
_Toc41451444 \h 8

HYPERLINK \l “_Toc41451445” Листинг программы PAGEREF _Toc41451445
\h 9

HYPERLINK \l “_Toc41451446” Результаты работы программы PAGEREF
_Toc41451446 \h 11

HYPERLINK \l “_Toc41451447” Пример №1 PAGEREF _Toc41451447 \h 11

HYPERLINK \l “_Toc41451448” Пример №2 PAGEREF _Toc41451448 \h 11

HYPERLINK \l “_Toc41451449” Пример №3 PAGEREF _Toc41451449 \h 12

Используемая литература

1. HYPERLINK “http://www.kyshtym.net.ru/rww/”
http://www.kyshtym.net.ru/rww/ Учимся программировать на С++

2. HYPERLINK “http://www.sprin.ru/soft.php”
http://www.sprin.ru/soft.php Решение линейных уравнений методом Ньютона
(касательных)

Метод Ньютона (касательных).

Описание

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

Итерационый процесс схождения к корню реализуется формулой:

xn+1=xn-f(xn)/f ‘(xn). Вычисления продолжаются пока соблюдается условие

|xn+1-xn |>=eps.

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

Ниже приведена блок-схема алгоритма и листинг программы, реализующей
данный алгоритм на языке С++. Также привожу текст, которая выдает данная
программа при решении исходного уравнения.

Блок-схема алгоритма

Листинг программы

//метод Ньютона для решения кубических уравнений

#include

#include

double a[4]={0},

b[3]={0},

c[2]={0},

prec=0.00000;

double minim=0, maxim=0;

void Hello(void);

void Input();

void Derivative();

void Calculation();

double Calc_Fun(double);

double Calc_First(double);

double Calc_Second(double);

main(void)

{

Hello();

Input();

Derivative();

Calculation();

return 0;

}

void Hello(void)

{

cout<<"Программа для решения кубических уравнений методом касательных (метод Ньютона).\n\n";}void Input(){cout<<"Кубическое уравнение имеет вид"<>a[i];

}

cout<>minim;

cout<<"Введите верхнюю границу поиска : ";cin>>maxim;

while(minim==maxim||minim>maxim)

{

cout<<"\nНижняя граница должна быть меньше верхней и не может быть ей равна."<>minim;

cout<<"Повторите ввод верхней границы : ";cin>>maxim;

}

cout<<"Введите допустимую погрешность : ";cin>>prec;

}

void Derivative()

{

b[0]=a[0]*3;

b[1]=a[1]*2;

b[2]=a[2];

c[0]=b[0]*2;

c[1]=b[1];

cout<<"\n\n\n"<<"Исходное уравнение имеет вид : \n\n"<0) x=minim;

else x=maxim;

if (Calc_First(minim)>Calc_First(maxim)) m=abs(Calc_First(maxim));

else m=abs(Calc_First(minim));

cout<<"|";cout.width(15);cout.precision(10);cout<prec)

{

x=(x-(Calc_Fun(x)/Calc_First(x)));

cout<<"|";cout.width(15);cout.precision(10);cout<

#include

double a[4]={0},

b[3]={0},

prec=0.00000;

double minim=0, maxim=0;

void Hello(void);

void Input();

void Derivative();

void Calculation();

double Calc_Fun(double);

double Calc_First(double);

main(void)

{

Hello();

Input();

Derivative();

Calculation();

cout<<"Программа для решения кубических уравнений методом итераций.\n\n";}void Input(){cout<<"Кубическое уравнение имеет вид"<>a[i];

}

cout<>minim;

cout<<"Введите верхнюю границу поиска : ";cin>>maxim;

while(minim==maxim||minim>maxim)

{

cout<<"\nНижняя граница должна быть меньше верхней и не может быть ейравна." <>minim;

cout<<"Повторите ввод верхней границы : ";cin>>maxim;

}

cout<<"Введите допустимую погрешность : ";cin>>prec;

}

void Derivative()

{

b[0]=a[0]*3;

b[1]=a[1]*2;

b[2]=a[2];

}

void Calculation()

{

double x=0, x_old=0, m=0;

cout<<"-------------------------------------------------"<fabs(Calc_First(maxim))) m=x=x_old=minim;

else m=x=x_old=maxim;

m=fabs(1/Calc_First(m));

cout<<"|";cout.width(15);cout.precision(10);cout<0)

{

do

{

x_old=x;

x=x_old-m*Calc_Fun(x_old);

cout<<"|";cout.width(15);cout.precision(10);cout<prec);

}

else

{

do

{

x_old=x;

x=x_old+m*Calc_Fun(x_old);

cout<<"|";cout.width(15);cout.precision(10);cout<prec);

}

cout<<"-------------------------------------------------";}double Calc_Fun(double x){return (a[0]*x*x*x+a[1]*x*x+a[2]*x+a[3]);}double Calc_First(double x){return (b[0]*x*x+b[1]*x+b[2]);}Результаты работы программыПример №1Программа для решения кубических уравнений методом итераций.Кубическое уравнение имеет видa1*x^3+a2*x^2+a3*x+a4=0Введите значение коэффициента a[1] : 1Введите значение коэффициента a[2] : -6Введите значение коэффициента a[3] : -9Введите значение коэффициента a[4] : 58Необходимо указать интервал поиска решения.Введите нижнюю границу поиска : -4Введите верхнюю границу поиска : -3Введите допустимую погрешность : 0.00005-------------------------------------------------| Xn | f(Xn) | X(n+1)-Xn |-------------------------------------------------| -4| -66| || -3.24137931| -9.922506048| 56.07749395|| -3.127327517| -3.12093462| 6.801571427|| -3.091454705| -1.064778438| 2.056156183|| -3.079215872| -0.372281515| 0.6924969227|| -3.074936774| -0.131239433| 0.241042082|| -3.073428275| -0.04639844126| 0.08484099175|| -3.07289496| -0.01642029825| 0.02997814301|| -3.072706221|-0.005813178631| 0.01060711962|| -3.072639403|-0.002058264249| 0.003754914382|| -3.072615744|-0.000728799396| 0.001329464852|| -3.072607367|-0.000258060628|0.0004707387678|| -3.072604401|-9.137721784e-0|0.0001666834108|| -3.072603351|-3.235601088e-0|5.902120696e-05|| -3.072602979|-1.145703711e-0|2.089897377e-05|-------------------------------------------------Пример №2Программа для решения кубических уравнений методом итераций.Кубическое уравнение имеет видa1*x^3+a2*x^2+a3*x+a4=0Введите значение коэффициента a[1] : 1Введите значение коэффициента a[2] : -6Введите значение коэффициента a[3] : -9Введите значение коэффициента a[4] : 58Необходимо указать интервал поиска решения.Введите нижнюю границу поиска : 3Введите верхнюю границу поиска : 4Введите допустимую погрешность : 0.00005-------------------------------------------------| Xn | f(Xn) | X(n+1)-Xn |-------------------------------------------------| 3| 4| || 3.222222222| 0.159122085| 3.840877915|| 3.231062338| 0.01338370012| 0.1457383849|| 3.231805877| 0.0011??????????????†????????????????????????†????????????????????????†† ???????????????????????????????????????????????Пример №3Программа для решения кубических уравнений методом итераций.Кубическое уравнение имеет видa1*x^3+a2*x^2+a3*x+a4=0Введите значение коэффициента a[1] : 1Введите значение коэффициента a[2] : -6Введите значение коэффициента a[3] : -9Введите значение коэффициента a[4] : 58Необходимо указать интервал поиска решения.Введите нижнюю границу поиска : 5Введите верхнюю границу поиска : 6Введите допустимую погрешность : 0.00005-------------------------------------------------| Xn | f(Xn) | X(n+1)-Xn |-------------------------------------------------| 6| 4| || 5.851851852| 0.2601229487| 3.739877051|| 5.842217669| 0.0346921878| 0.2254307609|| 5.840932773| 0.004788677115| 0.02990351069|| 5.840755414|0.0006639855431| 0.004124691572|| 5.840730822|9.212373716e-05|0.0005718618059|| 5.84072741|1.278267885e-05|7.934105832e-05|| 5.840726937|1.773688694e-06|1.100899016e-05|-------------------------------------------------МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ ТАТАРСТАНАЛЬМЕТЬЕВСКИЙ НЕФТЯНОЙ ИНСТИТУТКафедра информатикиКурсовая работаНа тему: метод касательных (метод Ньютона)Работу выполнил студент гр. 52-61Низамова Г.Н.Проверил: Борганова Э.М.Альметьевск 2003 г.

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат
UkrReferat.com. Всі права захищені. 2000-2019