C++: Определённый интеграл методом прямоугольников. Разложение функции в ряд
В учебных целях. Для той и другой задачи достаточно буквально по 3 строки кода, если не думать о нюансах, конечно.
Вот определённый интеграл методом средних прямоугольников от функции f(x)=sin(x)
на интервале [a,b]=[0,π]
.
#include <stdio.h> #include <math.h> double f(double x) { return sin(x); } void main() { double a=0,b=M_PI,n=100,dx=(b-a)/n,s=0; for (double x=a; x<=b+1e-6; x+=dx) s+=f(x+dx/2); printf ("\nI=%16.14lf",s*dx); getchar(); }
Вот разложение в ряд
функции 1/(1-x)
в точках x = 0.1, 0.2, ..., 0.9
(для каждого значения x выполняется 1000 шагов). Следует помнить, что такие разложения в ряды Тейлора или Маклорена действуют не на всей области определения функции, а только в окрестности одной или нескольких точек сходимости.
#include <stdio.h> #include <math.h> void main() { for (double x=0.1; x<=0.9; x+=0.1) { double s=0,x0=1; for (int i=0; i<1000; i++) { s+=x0; x0*=x; } printf ("\n%16.14lf,%16.14lf",s,1/(1-x)); } }
17.12.2012, 14:32 [16552 просмотра]