35259

Знаходження першої та другої похідної за допомогою формул чисельного диференціювання

Практическая работа

Информатика, кибернетика и программирование

Мета. Навчитися знаходити першу та другу похідну з допомогою формул чисельного диференціювання. Обладнання. Лист формату А4, ручка, програмне забезпечення С++.

Украинкский

2013-09-09

188 KB

7 чел.

Лабороторна робота №7

Тема. Знаходження першої та другої похідної за допомогою формул чисельного диференціювання.

Мета. Навчитися знаходити першу та другу похідну з допомогою формул чисельного диференціювання.

Обладнання. Лист формату А4, ручка, програмне забезпечення С++.

Хід роботи

1.Правила ТБ

2.Теоретичні відомості

Постановка задачі: Функція  на відрізку задана таблично: - рівновіддалені вузли. Знайти першу та другу похідну в точці .

.

    Якщо х лежить на початку відрізка, то

.

      Якщо х лежить в кінці  відрізка, то

.

      Якщо х – вузел інтерполяції:

.

3. Індивідуальне завдання:

За допомогою інтерполяційних формул Ньютона, знайти значення першої та другої похідних при даному значенні аргумента для функції, заданої таблично.

                                               Таблиця 2 (Варіанти 2,4,6,8,…,20),         

1,5

10,517

4,5

8,442

2,0

10,193

5,0

8,482

2,5

9,807

5,5

8,862

3,0

9,387

6,0

9,701

3,5

8,977

6,5

11,132

4,0

8,637

7,0

13,302

Найдём численное решение данного уравнения усовершенствованным методом Эйлера (методом ломаных)

Решения будем искать на отрезке [].  Отрезок-[0;1] при h=0.2;

;    

.

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

(9)

0

1

2

3

4

5

0

0.2

0.4

0.6

0.8

1.0

0

0.1981

0.3816

0.5408

0.6721

0.7765

1

0.9628

0.8640

0.7325

0.5952

0.1

0.0963

0.0864

0.0733

0.0595

0.1

0.3

0.5

0.7

0.9

0.1

0.2944

0.4680

0.6141

0.7316

0.9905

0.9179

0.7962

0.6565

0.5218

0.1981

0.1835

0.1592

0.1313

0.1044

Блок-схема программы

 

 

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

#include<iostream.h>

#include<math.h>

double f (double x,double y);

double f (double x,double y)

{return 1+0.8*y*sin(x)-1.75*y*y;}

void main()

{int i,n;

double a,b,h,xi2,yi2,dely;

cout<<"Введите а: ";

 cin>>a;

 cout<<"Введите b: ";

 cin>>b;

 cout<<"Введита шаг: ";

 cin>>h;

n=(b-a)/h;

double*x=new double [n+1];

x[0]=a;

for(i=0; i<=n+1; i++)

{x[i]=x[0]+i*h;}

double*y=new double [n+1];

cout<<"Введите у0: ";

 cin>>y[0];

 cout<<"\n Решение задачи Коши - табличная функция: \n ";

 cout<<"\n\t X\t \tY \t"<<endl;

for(i=0; i<=n+1; i++)

{cout<<"\n  \t"<<x[i]<<" \t";

 yi2=y[i]+(h/2)*f(x[i],y[i]);

 xi2=x[i]+h/2;

 dely=h*f(xi2,yi2);

 y[i+1]=y[i]+dely;

 cout<<"\t "<<y[i]<<"\t ";}  }

 

Контрольні питання:

1. Сформулюйте задачу знаходження першої та другої похідних за допомогою інтерполяційних формул Ньютона.

2. Які формули Ньютона для знаходження першої та другої похідних функції? В якому випадку вони застосовуються?

3. Яка ступінь точності формул наближеного диференціювання?

2