Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MATLAB00 / maksimova_ML_Математика_ЛР

.pdf
Скачиваний:
83
Добавлен:
09.04.2015
Размер:
766.08 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 9

ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ

9.1. ЦЕЛЬ РАБОТЫ

Ознакомится с численными методами вычисления определенных интегралов, научится решать задачи с использованием формулы Симпсона, трапеций, правых и левых прямоугольников, метод Монте-Карло.

9.2.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Изучить теоретическую часть. Выполните задания, соответствующие номеру Вашего варианта, и продемонстрируйте их преподавателю.

2.Оформите отчет по лабораторной работе, который должен содержать:

титульный лист;

исходные данные варианта;

решение задачи;

результаты решения задачи.

9.3.МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 9.1.

5

Вычислить интеграл ln xdx методом левых и правых прямоугольников,

3

трапеций и Симпсона.

Решение:

 

В командном окне

программы МАТLAB наберем следующую

последовательность операторов:

>> f=inline('reallog(x)');

% задание подынтегральной функции

>> a=3;

 

>> b=5;

 

>> N=100;

 

>> i=1:N;

 

>> dx=(b-a)/(N-1);

% шаг интегрирования

>> x=a:dx:b;

% вычисление координат узлов сетки

>> y=feval(f,x);

% вычисление значений функции в узлах сетки

%вычисление интеграла методом правых прямоугольников

>>m=2:N;

>>y1(m-1)=y(m);

>>Fr=sum(y1)*dx Fr =

2.7565

%вычисление интеграла методом левых прямоугольников

>>m=1:N-1;

>>y1(m)=y(m);

>>Fl=sum(y1)*dx

Fl = 2.7462

% вычисление интеграла методом трапеций

>>s=0;

>>for i=2:N-1 s=s+y(i);

end;

>> Ft=(0.5*y(1)+s+0.5*y(N))*dx Ft =

2.7513

51

% вычисление интеграла методом Симпсона

>>s=0;

>>for i=2:N-1

if i-2*ceil(i/2)==0 k=4;

else k=2;

end;

s=s+k*y(i);

end;

>> Fs=(y(1)+s+y(N))*dx/3 Fs =

2.7405

Пример 9.2.

5

Вычислить интеграл ln xdx методом Монте-Карло.

3

 

 

 

 

 

 

Решение:

 

 

 

 

 

 

Значение интеграла можно вычислить по формуле:

 

F

=

n

 

S ,

(9.1)

 

 

МК

 

N

 

 

 

 

 

 

 

 

 

 

где n – число точек, удовлетворяющих

 

условию yi f (xi ) ,

N – полное

количество точек, S – площадь прямоугольника;

 

или:

 

 

 

1

N

 

 

 

 

 

 

FМК = (b a)

 

f (xi ) ,

(9.2)

 

 

 

 

 

N i=1

 

где xi – последовательность случайных чисел с равномерным законом распределения на отрезке [a, b].

В командном окне программы МАТLAB введем следующее:

>> f=inline('reallog(x)');

>> a=3; % задание координат вершин прямоугольника

>>b=5;

>>Ymin=0;

>>Ymax=feval(f,b);

>>N=1000; % генерация случайных координат

>>x=a+(b-a)*rand(N,1);

>>y=Ymin+(Ymax-Ymin)*rand(N,1);

>> s=0;

% подсчет числа точек, попавших под график функции

>> for i=1:N

 

if y(i)<=feval(f,x(i))

 

s=s+1;

 

end;

 

end;

 

>>Fmk=s*(b-a)*(Ymax-Ymin)/N % вычисление значения интеграла

Fmk = 2.7425

% вычисление интеграла в соответствии с (9.2)

>>F=feval(f,x);

>>Fmk=(b-a)*sum(F)/N

Fmk =

2.7463

Вычисление интеграла в системе MATLAB осуществляется с помощью следующих функций:

9 quad(′fun′, a, b, tol) – возвращает значение интеграла от функции fun на интервале [a, b] с заданной относительной погрешностью tol ( по

52

умолчанию tol=10-3), при вычислении используется адаптивный метод Симпсона;

9int(y(x), a, b) – возвращает значение интеграла от функции y(x) на

интервале [a, b] аналитическими методами (если границы не задавать, то вычисляет неопределенный интеграл).

Пример 9.3.

Пусть необходимо вычислить определенный интеграл

5

ln xdx .

3

Программа решения интеграла с помощью функции quad имеет вид:

>>y='log(x)';

>>quad(y,3,5)

После нажатия клавиши <Enter> получим следующее решение:

ans = 2.7514

Рассмотрим решение интеграла с помощью функции int:

>> syms x;

%определение символьных

переменных

>> y=log(x);

% ввод подынтегрального

выражения

>> int(y,3,5)

 

 

ans =

 

 

5*log(5)-2-3*log(3)

9.4.ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1.В каком случае используется численное интегрирование?

2.Постановка задачи численного интегрирования.

3.Какие существуют методы интегрирования функций?

4.Графическая интерпретация метода трапеций.

5.Как оценить погрешность метода трапеций?

6.Графическая интерпретация метода Симпсона.

7.Как оценить погрешность метода Симпсона?

8.Графическая интерпретация метода прямоугольников.

9.Как оценить погрешность метода прямоугольников?

10.Чем отличаются формулы метода трапеций и метода Симпсона?

11.Как влияет на точность численного интегрирования величина шага h? 12.Чем отличается вычисление погрешности метода трапеций и Симпсона? 13.Основная идея метода Монте-Карло?

14. Графическая интерпретация метода Монте-Карло.

9.5. ЗАДАНИЕ

Найти приближенное значение интеграла заданной функции f(x) на отрезке [a, b] по формулам прямоугольников, трапеции, Симпсона, Монте-Карло при делении отрезка на 2000 равных частей, произвести оценку погрешности методов интегрирования и сравнить точность полученных результатов: составить функцию, возвращающую значение интеграла на основе формулы метода Монте-Карло. Сравнить результаты, полученные разными методами.

53

Варианты заданий.

 

 

 

 

f(x)

[a, b]

f(x)

[a, b]

варианта

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

x

 

 

 

 

1

 

1+cos2 x

 

[0; 3]

7

x

 

tg

 

 

 

 

[1,5;2,5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

sin(2x

2

+1)

 

[0; 1]

8

 

 

 

ex

 

 

 

 

[1; 7]

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

1

 

 

 

 

 

 

 

 

3

(x +1.9)sin

 

 

[1; 2]

9

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

x2 +1

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

4

 

1

ln(x + 2)

 

[2; 3]

10

 

 

4 + x4

 

[0; 3]

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 cos

x

 

 

 

 

 

 

 

 

 

 

2

 

 

 

π

 

5

 

 

 

 

[2; 3]

11

1+ cos

 

x

[0;

]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

3x + ln x

 

 

 

[1; 2]

12

ex sin(x2 )

[0; 5]

54

ЛАБОРАТОРНАЯ РАБОТА № 10

ВЫЧИСЛЕНИЕ КРАТНЫХ ИНТЕГРАЛОВ

10.1. ЦЕЛЬ РАБОТЫ

Ознакомится с численными методами вычисления кратных интегралов, научится решать задачи с использованием метода Монте-Карло.

10.2.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Изучить теоретическую часть. Выполните задания, соответствующие номеру Вашего варианта, и продемонстрируйте их преподавателю.

2.Оформите отчет по лабораторной работе, который должен содержать:

титульный лист;

исходные данные варианта;

решение задачи;

результаты решения задачи.

10.3.МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 10.1.

Вычислить методом Монте-Карло двойной интеграл ∫∫ x + ydxdy , где область

D

D ограничена линиями x = 0, x = 4, y =3x, y =8x (рис. 10.1).

Рис. 10.1. Область D.

Решение:

4 8x

Записав данный двойной интеграл в виде повторного, имеем I = dx x + ydy .

0 3x

Здесь а=0, b=4, ϕ1 (x) =3x, ϕ2 (x) =8x; далее, ϕ1 (x) 0, ϕ2 (x) =≤32, поэтому с=0, d=32.

1. Создайте файл F_10.m (листинг 10.1), содержащий описание функции

F(x, y) = x + y .

Листинг 10.1. Файл F_10.m.

function z=F_10(x,y) z=sqrt(x+y);

55

2. Создайте файл G1_10.m (листинг 10.2), содержащий описание функции

ϕ1 (x) =3x .

Листинг 10.2. Файл G1_10.m.

function z=G1_10(x) z=3*x;

3. Создайте файл G2_10.m (листинг 10.3), содержащий описание функцииϕ2 (x) =8x .

Листинг 10.3. Файл G2_10.m.

function z=G2_10(x) z=8*x;

4. Создайте файл KrInt.m (листинг 10.4), содержащий описание функции,

вычисляющей

двойной

интеграл методом Монте-Карло по формуле

∫∫ f (x, y)dxdy

(b a)(d c) f (xi , yi ) .

 

 

 

n

D

N

 

i=1

Листинг 10.4. Файл KrInt.m.

function z=KrInt(f,a,b,c,d,g1,g2,N) S=0;

for i=1:N x=a+(b-a)*rand(1); y=c+(d-c)*rand(1); ng=feval(g1,x); vg=feval(g2,x);

if (y<=vg) & (y>=ng) S=S+feval(f,x,y);

end

end z=(b-a)*(d-c)*S/N;

5. Вычислите интеграл:

>> I=KrInt('F_10',0,4,0,32,'G1_10','G2_10',1000)

I=

163.4583

4 8x

Таким образом, I = dx x + ydy 163,4583.

03x

10.4.ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1.В каком случае используется численное интегрирование?

2.Постановка задачи численного интегрирования.

3.Какие существуют методы вычисления кратных интегралов?

4.Основная идея метода Монте-Карло.

5.Аналог формул прямоугольников.

6.Аналог формулы трапеций.

7.Аналог формул Симпсона.

56

 

 

10.5. ЗАДАНИЕ

 

 

Вычислить двойной интеграл I по области D методом Монте-Карло.

Варианты заданий.

 

 

Задания

 

 

№ варианта

 

 

 

 

 

I

D

 

 

 

 

1

∫∫(x + y)2 dxdy

x =1, x =3, y = x2 , y = x + x2

 

D

 

 

 

 

2

∫∫(x2 + y2 )dxdy

x = 0, x = 4,

y =1,

y =5

 

D

 

 

 

 

3

∫∫(xy + 3 y)dxdy

x = 0, x = 2,

y =1,

y =9

 

D

 

 

 

 

 

x

 

 

x2

 

4

 

+ y dxdy

x = 2, x = 4, y = 2 , y = 2x

∫∫D 2

 

5

∫∫ x + y +1dxdy

x = 0, x = 4,

y =1,

y = 7

 

D

 

 

 

 

6

∫∫cos y dxdy

x = 0.2, x =1,

y = 0, y = x

 

D

x

 

 

 

7

∫∫(x y)dxdy

y = 2 x2 ,

y = 2x 1

 

D

 

 

 

 

8

∫∫(x + 2y)dxdy

x = 2, x =3, y = x,

y = 2x

 

D

 

 

 

 

9

∫∫(x2 + y2 )dxdy

x = y, x = 0,

y =1,

y = 2

 

D

 

 

 

 

10

∫∫(3x2 2xy + y)dxdy

x = 0, x = y2 , y = 2

 

D

 

 

 

 

11

∫∫(x + y + 3)dxdy

x + y = 2, x = 0,

y = 0

 

D

 

 

 

 

12

∫∫(x2 + y)dxdy

y =x2 ,

y2 = x

 

D

 

 

 

 

 

 

 

57

 

 

ЛАБОРАТОРНАЯ РАБОТА № 11

МЕТОДЫ ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ.

11.1. ЦЕЛЬ РАБОТЫ

Сформировать у студентов представление о подходе к решению задачи о среднеквадратичном приближении функции, заданной таблично; привить знания о методах аппроксимации элементарными функциями; выработать навыки работы в среде программы МАТLAB.

11.2.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Изучить теоретическую часть. Выполните задания, соответствующие номеру Вашего варианта, и продемонстрируйте их преподавателю.

2.Оформите отчет по лабораторной работе, который должен содержать:

титульный лист;

исходные данные варианта;

решение задачи;

результаты решения задачи.

11.3.МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 11.1.

Найти уравнение линейной и гиперболической регрессий для функции, заданной таблично:

x

1

2

3

4

5

y

4

5

3,5

1,5

2

Решение:

а) Вычислить коэффициенты a и b уравнения линейной регрессии можно, воспользовавшись системой:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M x2

=

 

 

 

 

xi

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

M

 

2 a + M

 

b

= M

 

 

,

 

 

M x =

 

xi ,

 

 

x

x

xy

 

 

n

 

 

 

 

 

 

 

 

 

(11.1)

где

 

 

 

 

 

 

(11.2)

 

 

a +b =

M

;

 

 

 

 

1

 

 

M

 

 

 

 

 

 

M xy =

 

 

 

 

x

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

xi

yi ,

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

yi ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M y

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

или формулами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M x2 M y

M x M xy

 

 

 

 

 

 

 

 

 

a =

M xy M x M y

, b =

. (11.3)

 

 

 

 

 

 

 

M 2

 

 

 

 

 

 

M

2

M

2

 

 

 

 

 

M

2

 

 

 

 

 

 

 

 

 

 

 

 

x

 

x

 

 

 

 

 

 

x

 

x

 

 

 

 

 

 

 

 

 

В командном окне программы MATLAB наберем следующую последовательность операторов:

>>

x=[1;2;3;4;5];

% задание исходных данных

>>

y=[4;5;3.5;1.5;2];

 

58

>> x2=[x.^2];

 

>> xy=[x.*y];

 

>> Mx=1/6*sum(x);

% вычисление элементов матриц М и d

>>My=1/6*sum(y);

>>Mx2=1/6*sum(x2);

>>Mxy=1/6*sum(xy);

>> M(1,1)=Mx2;

% задание матрицы М

 

>> M(1,2)=Mx;

 

 

 

>> M(2,1)=Mx;

 

 

 

>> M(2,2)=1;

 

 

 

>> d(1,1)=Mxy;

% задание матрицы d

 

>> d(2,1)=My;

 

 

 

>> Coeff=M^-1*d

% решение системы линейных уравнений

(11.1)

Coeff =

 

 

 

0.0286

 

 

 

2.5952

 

 

 

>> a=(Mxy-Mx*My)/(Mx2-Mx^2)

% вычисление коэффициентов

с помощью формул

(11.3)

 

 

 

a =

 

 

 

0.0286

 

 

 

>>b=(Mx2*My-Mx*Mxy)/(Mx2-Mx^2)

b =

2.5952 % вычисление суммы квадратов отклонений

>>y1=a*x+b;

>>e2=(y-y1).^2;

>>S=sum(e2)

S =

10.0840

%построение графика полученной функции и исходных данных

>>plot(x,y1,x,y,'*')

Получили уравнение линейной регрессии у=0,0286х+2,5952, сумму квадратов отклонений S=10,084 и график (рис 11.1).

Рис. 11.1. Исходные данные и график для линейной функции

б) Для нахождения гиперболической регрессии воспользуемся заменой u = 1x и

рассмотрим таблицу

59

 

U

u1

u2

un

для функции F(u,a,b) = au +

y

y1

y2

yn

b.

 

 

 

 

В командном окне программы MATLAB введем следующее:

>>

x=[1;2;3;4;5];

 

>>

u=(1./x);

% введение замены переменной х

>>y=[4;5;3.5;1.5;2];

>>u2=[u.^2];

>>uy=[u.*y];

>>Mu=1/6*sum(u);

>>My=1/6*sum(y);

>>Mu2=1/6*sum(u2);

>>Muy=1/6*sum(uy);

>>M(1,1)=Mu2;

>>M(1,2)=Mu;

>>M(2,1)=Mu;

>>M(2,2)=1;

>>d(1,1)=Muy;

>>d(2,1)=My;

>>Coeff=M^-1*d Coeff =

3.9564

1.1610

>>a=(Muy-Mu*My)/(Mu2-Mu^2)

a =

3.9564

>>b=(Mu2*My-Mu*Muy)/(Mu2-Mu^2)

b =

1.1610

>>y2=a1./x+b1

>>e2=(y-y2).^2

>>S=sum(e2)

S =

6.1769

>> plot(x,y2,x,y,'*')

Получили уравнение гиперболической регрессии у=3,9564/х+1,1610, сумму квадратов отклонений S=6,1769 и график (рис 11.2.).

11.2.Исходные данные и график для гиперболической функции

60

Соседние файлы в папке MATLAB00