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

Стандартные математические функции.

Функция

Наименование

Тип аргументов

Тип результата

sin(x)

синус x

(long)double

(long)double

cos(x)

косинус x

(long)double

(long)double

tan(x)

тангенс x

(long)double

(long)double

asin(x)

арксинус x

(long)double

(long)double

acos(x)

арккосинус x

(long)double

(long)double

atan(x)

арктангенс x

(long)double

(long)double

exp(x)

экспонента x

(long)double

(long)double

log(x)

натуральный логарифм x

(long)double

(long)double

log10(x)

десятичный логарифм x

(long)double

(long)double

pow(x,y)

x в степени y

(long)double,

double

(long)double

sqrt(x)

квадратный корень из x

(long)double

(long)double

abs(x)

абсолютное значение x

int

int

fabs(x)

абсолютное значение x

(long)double

(long)double

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

Для вычисления первого приближения интеграла разделим отрезок [a, b] на n равных частей (n=4), определим значения x i = a + h i – h / 2; h = ( b – a ) / n.

Вычислим площадь S i = h * f ( x i ). Сумма S i площадей этих прямоугольников является приближенным значением интеграла:

Однако одно приближение не позволяет оценить точность, с которой вычислено значение интеграла, необходимо найти второе приближение. Для этого увеличим n в два раза, то есть n=2n. Аналогично S1 найдем S2:

Требуется вычислить значение интеграла с точностью , поэтому проверим условие |S1-S2|<. Если условие выполняется, то S2 принимается за искомое значение интеграла; если не выполняется, то последнее выполненное значение S2 считается предыдущим, то есть S1= S2. После этого удвоим число точек деления отрезка и вычислим новое значение S2. Процесс удвоение n и вычисление S2 будем продолжать до тех пор, пока модуль разности S1 и S2 не станет меньше .

Вычисление по формуле Симпсона.

Вычисление интеграла по формуле Симпсона определяется путем деления отрезка [ a, b ] на множество более мелких отрезков.

Формула Симпсона имеет вид:

Здесь N – четное число делений интервала интегрирования: x i = a + i ( b – a ) / N.

Алгоритм состоит в циклическом выполнении расчетов f ( x i ). При этом следует отдельно рассмотреть случаи для границ интегрирования f ( a ) и f ( b ) и учесть, что при нечетном номере вычисляемого элемента, значение функции умножается на 4, при четном – на 2. При конечных значениях отрезка умножение не производится.

Вычисление с заданной точностью корня уравнения F(x)=0 методом итераций.

Пусть корень уравнения находится на отрезке [ a, b ].

Для использования метода итераций исходное уравнение F(x)=0 нужно привести к виду x=f(x). Если известно начальное приближение к корню х=х1, то подставив его в правую часть уравнения х=f(x), получим новое приближение x3=f(x2),……..xk+1=f(xk).

Итерационный процесс сходится к корню уравнения, если |f ‘(x)|<1 на отрезке, содержащем корень уравнения. Если выполняется неравенство –1<f ‘(x)<0, то корень уравнения всегда находится на отрезке [xk, xk+1] и условие окончания итерационного процесса имеет вид неравенства |xk+1-xk|<.

Переход от уравнения F(х)=0 к уравнению f(х) можно осуществить следующим образом. Умножим левую и правую части уравнения F(х)=0 на произвольную константу h и добавим к обеим частям уравнения неизвестное х. Эти действия не изменяют корней уравнения:

h F(х) +х=О*h

h F(х) +х=х

Обозначив f(х) =h f(х) +х, перейдем к уравнению х=f(х).

Величину h желательно выбрать такой, чтобы выполнялось неравенство –1<f '(х)<0 на отрезке, содержащем корень уравнения.

Исходными данными для программы, соответствующей приведенному алгоритму, является грубое значение корня и точность вычисления. Условием выхода из итерационного процесса является неравенство |хk+1k]<, при этом искомым значением является хk+1.

Решить уравнение f(x)=0 с заданной точностью методом деления отрезка пополам.

Метод деления отрезка пополам заключается в следующем.. Проверяется наличие корня на отрезке [а, b]. Для этого вычисляются значения функции f(а) и f(b) . Если f(а)*f(b) > 0, то уравнение не имеет корней на заданном отрезке. Если f(а) * f(b) < 0, т. е. на концах отрезка [а, b] функция f(х) имеет противоположные знаки, то искомый корень лежит на этом отрезке. Поиск корня происходит следующим образом. Находим в точке а значение функции у1=f(а). Затем определяем значение х как среднюю точку между а и b, вычисляем значения у2=f(х). Теперь, если f(а) * f(х) > 0, то корень находится на отрезке [a, b]. Переместим точку а вправо, выполнив присвоение а=х. В противном случае нужно перемещать влево точку b: b. Таким образом получим второй отрезок [а, b], но вдвое меньше предыдущего. Процесс деления отрезка пополам продолжается до тех пор, пока отрезок [а, b] не станет меньше заданной точности.

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