Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1.doc
Скачиваний:
20
Добавлен:
16.04.2015
Размер:
289.28 Кб
Скачать

Лабораторная работа 5.

ПРОГРАММИРОВАНИЕ. ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ.

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

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

5.2. ПРАКТИЧЕСКОЕ ЗАДАНИЕ

Дана непрерывная на отрезке [a;b] функция f(x). Используя заданный численный метод приближенного вычисления интеграла, вычислите

(1)

Для вычисления подынтегральной функции f(x) напишите пользовательскую функцию.

5.3. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ

Пусть функция f(x) в (1) определена на отрезке [0;1,2] и имеет вид

f(x) (x+1) –0,3

а в качестве численного метода интегрирования задан один из наиболее часто применимых – формула трапеций:

(2)

здесь n=(b-a)/h – число разбиений отрезка [a;b], а h – шаг интегрирования, например, h=0,01.

Подынтегральную функцию f(x) оформим в виде вещественной функции float f (float x) с одним формальным параметром вещественного типа – аргументом функции. В цикле накапливается сумма s значений подынтегральной функции во внутренних точках разбиения отрезка [a;b] для i=1,2,…,n-1. После выхода из цикла к удвоенному значению s добавляется сумма f(a)+f(b) и, в соответствии с (2), умножается на h/2.

5.4. Пример выполнения работы

/* Лабораторная работа 5 */

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

float f (float x) {

return pow(x+1.,0.3);

}

int main(int argc, char *argv[])

{

float x, a = 0, b = 1.2, h = 0.01, s = 0;

for(x = a+h; x < b; x += h)

s += f(x);

s = (f(a) + 2.s + f(b)) h/2.;

printf(“s = %f”, s);

system("PAUSE");

return 0;

}

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

Интервал

f(x)

1

[0, 3]

2

[0, 6]

3

[0, 2]

4

[0, /4]

5

[0 /6]

6

[/2, ]

7

[1, 7]

8

[0, 10]

9

[0, ]

10

[/2, ]

11

[0, /6]

12

[0, /4]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]