Решение нелинейных уравнений с одной неизвестной

Автор работы: Пользователь скрыл имя, 12 Июня 2013 в 23:21, контрольная работа

Описание работы

Таким образом, в данной лабораторной работе я рассматривал как с помощью языка программирования С++ вычислить таблицу функции U для заданных точек в заштрихованной области. Данная программа определяет значения функции U исходя из ограничений.

Файлы: 1 файл

лаба по инфе 1.doc

— 154.00 Кб (Скачать файл)

 

Нижегородский Государственный

Технический университет

им. Алексеева

 

 

 

 

кафедра «Прикладная математика»

 

 

 

 

 

Лабораторная работа №1

 

Тема «РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

С ОДНОЙ НЕИЗВЕСТНОЙ».

 

Вариант №9

 

 

 

 

 

 

 

 

 

Выполнил студент

группы 12-Э-4

Николаев Игорь

Проверил 

Леканов  А.К.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нижний Новгород 2012г.

Постановка  задачи.

 

 

Дано уравнение:   .  Отрезок  [1 ; 2].

 

Решить нелинейное уравнение 3 способами:

 

1)Шаговый метод;

2)Метод половинного  деления;

3)Метод Ньютона;

 

 в 3 программах:

 

С++

MathCad

Excel

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализация  в среде С++

 

  1. Шаговый метод.

Код программы:

 

#include<iostream>

#include<math.h>

using namespace std;

double f(double x)

{

return cos(2/x)-2*(sin(1/x))+1/x;

}

int main()

{

double a=1,b=2,x,h;

h=(b-a)/10;

int i;

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

if (f(a+i*h)*f(a+(i+1)*h)<0)

cout<<"otrezok "<<a+i*h<<"\t"<<a+(i+1)*h<<endl;

return 0;

}

 

 

 

 

 

 

 

 

Скриншоты программы.

 

 

 

 

 

 

 

 

 

 

 

  1. Метод половинного деления.

Код программы:

 

 

#include<iostream>

#include<math.h>

using namespace std;

double f(double x)

{

return cos(2/x)-2*(sin(1/x))+1/x;

}

int main()

{

double a=1,b=2,x=(a+b)/2,E=0.001;

while (fabs (f(x))>E)

{

if (f(a)*f(x)<0)

b=x;

else

a=x;

x=(a+b)/2;

}

cout<<"rezult is "<<x<<endl;

return 0;

}

 

 

 

 

 

 

 

 

 

 

 

 

Скриншоты программы.

 

 

 

 

 

 

 

  1. Метод Ньютона.

Код программы:

 

 

#include<iostream>

#include<math.h>

using namespace std;

double f(double x)

{

return cos(2/x)-2*(sin(1/x))+1/x;

}

double g (double x)

{

return sin(2/x)*2/pow(x,2) +2*cos(1/x)*(pow(x,-2))-pow(x,-2);

}

 

int main()

{

double x=2,E=0.001;

while (fabs (f(x))>E)

{

x=x-(f(x)/g(x));

}

cout<<"rezult is "<<x<<endl;

return 0;

}

 

 

 

 

 

 

 

 

 

 

Скриншоты программы.

 

 

 

 

 

 

 

 

 Реализация в среде MathCad

 

Шаговый метод



Задание диапазона значений х от 1 до 2 с шагом 0.1







Описание функции y=f(x)







Вывод таблицы  полученных значений







 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Построение  графика f(x)



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализация  в среде Excel

 

Численные методы решения нелинейного уравнения

 
                   
       

Шаговый метод

     

Шаг

x

F(x)

0,1

1

-1,09909

 

1,1

-0,91367

 

1,2

-0,74274

 

1,3

-0,58961

 

1,4

-0,45412

 

1,5

-0,33484

 

1,6

-0,22987

 

1,7

-0,13737

 

1,8

-0,05561

 

1,9

0,0169

 

2

0,081451

Ответ:

1,8

1,9

       

Методы уточнения корня

е=

0,001

   

Метод половинного деления

     
   

a

x

b

F(a)

F(x)

F(a)*F(x)

|F(x)|<e

 
   

1,8

1,85

1,9

-0,05561

-0,01828

0,001017

-

 
   

1,85

1,875

1,9

-0,01828

-0,00043

7,94E-06

корень

 
                   
                   
                   
                   
                   
                   
   

Метод Ньютона

           
 

x

F(x)

F'(x)

|F(x)|<e

         
 

1,8

-0,05561

0,769012

-

         
 

1,872312

-0,00233

0,705772

-

         
 

1,875611

-4,5E-06

0,703048

корень

         
                   

 

 

 

 

 

 

 

 

 

Ручной счет.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод.

 

Таким образом,  в данной лабораторной работе я рассматривал как с помощью языка программирования С++ вычислить таблицу функции U  для заданных точек в заштрихованной области. Данная программа определяет значения функции U исходя из ограничений. 

 

 

 

 

 

 


Информация о работе Решение нелинейных уравнений с одной неизвестной