Лабораторная работа 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] |
|