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

Введение в программирование на языке C#

.pdf
Скачиваний:
75
Добавлен:
23.02.2015
Размер:
1.13 Mб
Скачать

Рисунок 14. Параболическая трапеция Пусть система координат расположена так, как показано на рис. 14. Коэффициенты

в уравнение параболы y Ax2 Bx C определяются из следующих уравнений:

y0 y( h ) Ah 2

Bh C

y1 y(0) C

 

y2 y(h) Ah2 Bh C

Не вызывает сомнений , что

y0 4y1 y2 Ah2 Bh C 4C Ah2 Bh C 2Ah2 6C

С другой стороны, площадь параболической трапеции можно определить с помощью определённого интеграла:

b

S a f( x)dx;

ah;

bh

Sh ( Ax2 Bx C )dx

h

 

 

Ax3

 

 

Bx2

 

h

 

 

 

Ah3

Bh2

 

A( h)3

 

B( h)2

S

(

 

 

 

 

 

 

 

Cx)

 

 

 

 

 

 

 

 

 

Ch

(

 

 

 

C( h))

 

3

 

2

 

 

3

 

 

2

3

2

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ah3

 

Bh2

 

Ah3

 

 

Bh2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ch (

 

 

 

 

 

 

 

 

 

 

 

Ch)

 

 

 

 

 

3

 

2

 

 

3

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ah3

Ch

Ah3

Ch

2Ah3

 

2ch

h

(2Ah2 6c)

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

3

 

 

 

 

 

3

 

 

 

 

 

 

3

 

 

 

 

 

 

Как видно, площадь параболической трапеции совпала с ранее полученной суммой с кратностью h/3. Следовательно:

h

S 3(y0 4y1 y2 )

После этого можно записать формулу для приближенного вычисления интеграла методом парабол:

h b a 2m

 

x2

 

 

 

h

 

a x0

f (x)dx

 

 

 

( y0

4 y1 y2 ),

3

x4

 

 

 

h

 

 

 

 

x2

f ( x )dx

 

 

 

( y2

4 y3 y4 ),

3

 

 

 

 

 

 

21

 

x2 m b

 

h

 

 

 

x2 m 2

f (x)dx

 

( y2m 2

4 y2m 1

y2m ),

3

Суммируя левые и правые части, получим слева искомый интеграл, справа его приближённое значение:

b

 

h

 

a

f( x)dx

(( y0 4y1 y2 ) ( y2 4y3 y4 ) ... ( y2m 2 4y2m 1 y2m ))

 

 

3

 

h

3( y0 4y1 y2 y2 4y3 y4 ... y2m 2 y2m 1 y2m ))

h

3( y0 4y1 2y2 4y3 ... y2m 2 y2m 1 y2m )

или

b

 

 

 

 

 

a

f( x)dx

h

( y0

y2m 2( y2

y4 ... y2m 2 ) 4( y1 y3 ... y2m 1 ))

 

a

3

 

( y0 y2m 2( y2

y4 ... y2m 2 ) 4( y1 y3 ... y2m 1 ))

f( x)dx b a

b

 

 

 

 

 

 

 

6m

 

 

 

 

 

 

Остаточный член для этого метода находится по формуле:

 

 

 

 

P

пр

 

( b a )5

*

 

 

 

 

180 n 4

 

 

 

 

 

 

 

где max f ( 4 )( x).

x [ a,b]

Постановка задачи. Разработайте программу вычисления определенного интеграла для заданной функции приближенным и точным методом .

Рекомендуемые этапы расчета :

Вычисление определенного интеграла на отрезке [ a, b ] по указанному методу численного интегрирования с шагом h= (b-a)/m , где m - кратность интегрирования ( метод, границы отрезка и кратность указаны в таблице 1).

Вычисление значения определенного интеграла по аналитической формуле.

Сравнение результатов, а также определение зависимости относительной ошибки метода численного интегрирования от кратности интегрирования для следующих значений m: 0.25m, 0.5m, 0.75m , m, 1.25m, 1.5m .

Представление результатов в виде таблицы на экране дисплея:

Функция

Пределы интегриро-

Точное значение

Метод расчета

____________

вания

 

интеграла

_____________

 

а= …

b= …

 

 

m

 

h

Интеграл (прибли-

Относительная

 

 

 

женно)

ошибка

 

 

 

 

 

Полностью отлаженная программа демонстрируется преподавателю. Отчет по курсовой работе содержит титульный лист, изложение варианта задания, постановку задачи в математическом виде, блок-схему и текст программы, схему типов, полученные результаты, выводы.

22

 

 

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

 

Таблица 1

 

 

 

 

 

№ варианта

Функция

 

a

b

m

Метод

 

1

Sin x

 

- π/2

0

200

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

2

Sin x

 

- π/2

0

300

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

3

Sin x

 

- π/2

0

400

Симпсона

 

4

Cos x

 

- π/2

0

500

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

5

Cos x

 

0

π/2

600

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

6

Cos x

 

0

π/2

700

Симпсона

 

7

Sin x+ x

 

π/2

500

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

8

Sin x+ x

 

π/2

600

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

9

Sin x+ x

 

3/2π

700

Симпсона

 

10

Sin x - x

 

3/2π

π

600

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

11

Sin x - x

 

π

4/3π

800

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

12

Sin x - x

 

π

900

Симпсона

 

13

- x + x2 – x3

 

0

4.5

300

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

14

- x + x2 – x3

 

3

12.6

300

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

15

2*x+3*x2 - x3

 

2

10

400

Симпсона

 

16

2*x+3*x2 - x3

 

-3

11

400

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

17

2*x-3*x2 + x4

 

-12

-8.4

600

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

18

2*x-3*x2 + x4

 

27

39

600

Симпсона

 

19

4*x + x4

 

-8

-2

800

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

20

4*x + x4

 

-10

-6

800

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

21

- 4*x2 + x4

 

-12

-8.4

500

Симпсона

 

22

- 4*x2 + x4

 

0

14.4

500

Входящих пря-

 

 

 

 

 

 

 

моугольников

 

23

Sin x

 

- π/2

0

550

Выходящих

 

 

 

 

 

 

 

прямоугольни-

 

 

 

 

 

 

 

ков

 

24

Cos x

 

- π/2

0

550

Симпсона

 

23

Содержание

 

I. Первая программа .....................................................................................................................

3

II. Исследование встроенных типов................................................................................................

8

III. Операторы циклов и режим отладки.....................................................................................

11

IV. Алгоритмы сортировки............................................................................................................

14

V. Работа с комплексными числами.............................................................................................

17

VI Курсовая работа "Оценка точности методов численного интегрирования".....................

19

ПРИЛОЖЕНИЕ 1............................................................................................................................

24

ПРИЛОЖЕНИЕ 1

Пример программной реализации численного интегрирования полинома

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

Для функции

f (x) 4x3 3x2 2x

на интервале [0, 10] рассчитать определенный интеграл приближённым и точным методом, оценить погрешность и вывести результаты на консоль. Для приближённого вычисления определённого интеграла использовать метод трапеций с кратностью 1000 без дополнительного члена.

Проектирование типов данных.

Для решения поставленной задачи целесообразно использовать структурный тип следующей конструкции:

Поля

Свойства

Методы

 

a

 

 

h (get)

Integral ()

Конструктор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

ИнтТрапеции (get)

fx()

Функция в точке

m

 

 

 

Fx()

Первообразная в

 

 

 

 

 

ИнтЛейбниц (get)

 

точке

 

 

 

 

 

 

 

 

 

ToString()

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 15. Схема типа Integral

Программный код

using System; class Интеграл1 {struct Integral {double a, b;

int m;

public Integral(double ina, double inb, int inm)

{a = ina < inb ? ina : inb;

b = ina < inb ? inb : ina; m = inm;

}

public override string ToString() {string s;

s = String.Format("Точное = {0:f3}\nПриближённое ={1:f3}",

24

ИнтТрапеции, ИнтЛейбниц);

double Delta=(ИнтТрапеции - ИнтЛейбниц)/ИнтЛейбниц*100; Delta = Math.Abs(Delta);

s += String.Format("\nПогрешность = {0:f3} %",Delta); return s;

}

public double fx(double x)

{return 4 * x * x * x + 3 * Math.Pow(x, 2) + 2 * x;} public double Fx(double x)

{return x * x * x * x + Math.Pow(x, 3) + x * x;} public double h

{get

{ return (b - a) / m; }

}

public double ИнтЛейбниц {get

{ return Fx(b) - Fx(a);}

}

public double ИнтТрапеции

{get

{double sum = (fx(a)+fx(b))/2;

for (double i = a + h; i < b; i += h) sum += fx(i); sum *= h;

return sum;

}

}

}

static void Main()

{Integral obj=new Integral(0,10,1000); Console.WriteLine(obj.ToString() );

}

}

Рекомендуемая литература:

1.Павловская Т.А. C#. Программирование на языке высокого уровня. – СПб.:

Питер, 2009.;

2.Шилдт Г. С#: учебный курс. – СПб.: Питер; К.: Издательская группа BHV, 2003.- 512с.

3.Лабор В.В. Си Шарп: Создание приложений для Windows – Мн.: Харвест, 2003.-384с.

4.Фаронов В.В. Программирование на языке C#.- СПб.: Питер, 2007.- 240с.

25