Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
01.05.2014
Размер:
86.02 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»

Кафедра МО ЭВМ

Вычислительная математика

Отчет

по выполнению лабораторной работы N2

Преподаватель:

Студент группы 4351: Усенко А.В.

Санкт-Петербург, 2006

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

Необходимо исследовать обусловленность задачи нахождения корня уравнения для линейной функции . Значения функции вычисляется приближенно с точностью Delta, варьируемой в пределах от 0.1 до 0.000001. Корень уравнения вычисляется с заданной точностью Eps, варьируемой от 0.1 до 0.000001. Вычисления провести для различных наборов параметров Delta, Eps, c. Параметр d принять равным 7.

Анализ задачи

Так как корень уравнения равен 7, то границы интервала поиска корня [a;b] возьмем a=0, b=10. Тангенс угла наклона с будем варьировать только в положительной полуоси, т.к. результаты вычислений для противоположных значений тангенса будут одинаковы с точностью до знака.

Теоретическое абсолютное число обусловленности . Практически же абсолютное число обусловленности можно вычислить так: .

Исходный текст программы

/*

File: Lab_2.cpp

Laboratornaya rabota N2

Izuchenie ponatija obuslovlennosti vichislitelnoy zadachi

Author: Usenko A.V.

Ver: 1.0

*/

#include <math.h>

#include <stdio.h>

#include <stdlib.h>

#include "methods.h"

#include <conio.h>

double delta,c,d;

void main()

{

int k;

long int s;

float a1,b1,c1,d1,eps1,delta1;

double a,b,eps,x;

double F(double);

printf("\n");

// c-koef inputing

printf("Enter c: ");

scanf("%f",&c1);

c = c1;

// d-koef inputing

printf("Enter d: ");

scanf("%f",&d1);

d = d1;

// a-border inputing

printf("Enter a: ");

scanf("%f",&a1);

a = a1;

// b-border inputing

printf("Enter b: ");

scanf("%f",&b1);

b = b1;

// eps inputing

printf("Enter eps: ");

scanf("%f",&eps1);

eps = eps1;

// delta inputing

printf("Enter delta: ");

scanf("%f",&delta1);

delta = delta1;

// root calculating

x = BISECT(a,b,eps,k);

// result outputing

printf("x=%f k=%d F(x)=%f\n",x,k,F(x));

getch();

return;

}

double F(double x)

{

extern double c,d,delta;

double s;

long int S;

s = c*(x - d);

if( s/delta < 0 )

S = s/delta - .5;

else

S = s/delta + .5;

s = S*delta;

s = Round( s,delta );

return(s);

}

Результаты вычислений

В следующей таблице представлены результаты вычисления корня при различных комбинациях параметров Eps, Delta, c. Также представлены сравнения теоретических и экспериментальных значений абсолютного числа обусловленности.

c

delta

eps

F(x)

x

k

теор

экспер

Обусловл

0,01

0,1

0,1

0,0

10,0

0

100

>>100

-

0,1

0,001

0,0

10,000

0

>>100

-

0,1

0,000001

0,0

10,000000

0

>>100

-

0,001

0,1

0,000

7,0

5

~1

+

0,001

0,001

0,000

7,031

5

>>100

-

0,001

0,000001

0,000

7,031250

5

>>100

-

0,000001

0,1

0,000313

7,0

6

0

+

0,000001

0,001

0,000007

7,001

13

142,8571

-

0,000001

0,000001

0,000000

6,999969

15

>100

-

0,1

0,1

0,1

0,0

7,5

1

10

>>10

-

0,1

0,001

0,0

7,500

1

>>10

-

0,1

0,000001

0,0

7,500000

1

>>10

-

0,001

0,1

0,003

7,0

6

~0

+

0,001

0,001

0,000

7,002

9

>>10

-

0,001

0,000001

0,000

7,001953

9

>>10

-

0,000001

0,1

0,003125

7,0

6

~0

+

0,000001

0,001

0,000073

7,001

13

13,69863

-

0,000001

0,000001

0,000000

6,999998

19

>10

-

1

0,1

0,1

0,0

7,0

5

1

~1

+

0,1

0,001

0,0

7,031

5

>>1

-

0,1

0,000001

0,0

7,031250

5

>>1

-

0,001

0,1

0,031

7,0

6

0

+

0,001

0,001

0,000

7,000

11

~1

+

0,001

0,000001

0,000

6,999512

11

>>1

-

0,000001

0,1

0,031250

7,0

6

0

+

0,000001

0,001

0,000732

7,001

13

1,36612

-

0,000001

0,000001

0,000000

7,000000

21

~1

+

10

0,1

0,1

0,3

7,0

6

0,1

0

+

0,1

0,001

0,0

7,002

9

>>0,1

-

0,1

0,000001

0,0

7,001953

9

>>0,1

-

0,001

0,1

0,312

7,0

6

0

+

0,001

0,001

0,007

7,001

13

0,142857

-

0,001

0,000001

0,000

6,999969

15

>0,1

-

0,000001

0,1

0,312500

7,0

6

0

+

0,000001

0,001

0,007324

7,001

13

0,136537

-

0,000001

0,000001

-0,000007

6,999999

23

0,142857

-

Вывод

Как видно из приведенной таблицы, наихудшая обусловленность задачи проявлялась при выборе минимального тангенса наклона, т.е. максимального приближения графика функции к оси абсцисс. Для достижения обусловленности задачи при таком тангенсе погрешность входных данных Delta должна быть меньше погрешности выходных данных Eps больше, чем в 102 раз. При бОльших значениях тангенса задача является обусловленной уже при погрешностях одного порядка.

Соседние файлы в папке Лабораторные работы 1 - 10