О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / Информатика / Лабораторная работа №1 ВАРИАНТ № 6 ОТДЕЛЕНИЕ КОРНЕЙ УРАВНЕНИЯ. МЕТОД ДЕЛЕНИЯ ОТРЕЗКА ПОПОЛАМ. МЕТОД НЬЮТОНА.

(автор - student, добавлено - 16-06-2014, 15:58)

СКАЧАТЬ:  elmi12.zip [27,69 Kb] (cкачиваний: 70)

 

 

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

 

ВАРИАНТ № 6

 

ОТДЕЛЕНИЕ КОРНЕЙ УРАВНЕНИЯ. МЕТОД ДЕЛЕНИЯ

ОТРЕЗКА ПОПОЛАМ. МЕТОД НЬЮТОНА.

 

x*ln(x+1)-1=0

 

Отделим корни уравнения графическим способом:

 

0

-1

1

-0,30685

2

1,197225

3

3,158883

4

5,437752

5

7,958797

6

10,67546

7

13,55609

8

16,5778

9

19,72327

10

22,97895

 

 

 

                          Отделение корней аналитическим методом.

 

program p;                                                                    

var                                                                           

   a,b,n,x,h:real;                                                          

Function  f (x:real):real;                                                  begin

   f:=x*ln(x+1)-1;

end;                                                                       

begin                                                                    

   Read(a,b,n);                                                              

   h:=(b-a)/n;                                                                

   x:=a;                                                                     

   repeat                                                                    

   if f(x)*f(x+h)<0                                                              then writeln ('[',x:8:3,x+h:8:3,']');                                   x:=x+h;                                                                   

until x>b;                                                               

 end.                                                                       

 

 

 

 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 В результате был получен следующий промежуток:

[1.000; 1.500];   

program p;                                                       

  var                                                                           

       a,b,e,x,Z:real;                                                            

 

 Function  f (a:real):real;                                                 

   begin                                                                      

   f:=a*ln(a+1)-1;                                                         

   end;                                                                       

   begin

 read(a,b,e);  

 Repeat  x:=(b+a)/2;                                                                   

   Z:=F(X);                                                                   

   if f(a)*z<0                                                                   

   then b:=x else a:=x;                                                                            until (b-a)<=e;

   writeln('X=',X:8:3,'  f(x)=',z:8:3);                     

 end.                         

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В результате был получен следующий корень:         

x=1,239   f(x)= -0.001

 

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

program p;                                                                   

 var                                                                         

   a,b,e,x,y:real;                                                            

   label N;                                                                   

    Function  f(x:real):real;                                                 

   begin                                                                      

   f:=x*ln(x+1)-1;                                                        

   end;                                                                       

   Function  g(x:real):real;                                                 

   begin                                                                      

    g:=ln(x+1)+x/(x+1);                                                           

  end;                                                                       

 begin                                                                       

  read (a,b,e);                                                              

  if ( a-f(a)/g(a))<b then x:=a else x:=b;                                 

   N: y:=x-f(x)/g(x) ;                                                        

   if abs(y-x)<=e then writeln('x=',y:8:3,' f(x)=',f(Y):8:3)            else begin  x:=y; GoTo N; end;                                                        

   end.           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В результате был получен следующий корень:

   x=1.240    f(x)=0.000

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

Проверим полученные значения корней, подставив их в уравнение.

Подставим в уравнение x* ln(x+1)-1=0 значение x=1.239, получим

f(x)=-0,001

Таким образом, в соответствии с указанной точностью Е=0,001 полученные значения корней являются верными.

 

ОТВЕТ: 1.239

 

 

 

 

 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!