Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Перепишем (9.1) в виде:
(9.2)
/***************************************************/
/* Выисление суммы ряда */
/************************************ **************/
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float a,b,h; //a- начало, b- конец, h-шаг
float c,s,x,y; // с- общий член, s-сумма ряда,
// x- аргумент функции,
// y- значение функции
int k,n; // k - параметр, n- кол-во членов ряда
clrscr();
printf("\n начало: а="); scanf("%f",&a);
printf(" конец: b="); scanf("%f",&b);
printf(" шаг: h="); scanf("%f",&h);
printf(" кол-во членов ряда: n=");
scanf("%d",&n);
printf("\na=%.2f\tb=%.2f\th=%.2f\t\n=%d",a,b,h,n);
for(x=a; x<=b+h/1000; x=x+h)
{
s=0;
for(k=1; k<=n; k++)
{
c=cos(2*k*x)/(4*k*k-1);
s=s+c;
}
y=0.5-M_PI/4*fabs(sin(x));
printf("\n x=%.2f \t s=%f \t y=%f",x,s,y);
}
getch();
}
Результаты работы программы:
начало: а=0.1
конец: b=0.8
шаг: h=0.1
кол-во членов ряда: n=50
a=0.10 b=0.80 h=0.10 n=50
x=0.10 s=0.421368 y=0.421591
x=0.20 s=0.344198 y=0.343965
x=0.30 s=0.267746 y=0.267899
x=0.40 s=0.194210 y=0.194152
x=0.50 s=0.123480 y=0.123460
x=0.60 s=0.056464 y=0.056531
x=0.70 s=-0.005891 y=-0.005967
x=0.80 s=-0.063464 y=-0.063410
Пример 9.4.2. (случай а)
Составить программу для вычисления суммы ряда:
(9.3)
и функции у=cos(x)+x sin(x) при 0 х 1 с шагом h=0,1
Перепишем формулу (9.3) в виде:
Общий член суммы относится к типу а).
Выразим (n+1)-й член через n-й:
Найдем коэффициент для рекуррентного отношения:
coef = an +1/ an
= , где n =0,1, …, 9, а 0=1.
Вычисление суммы будем осуществлять с помощью рекуррентной формулы: sn = sn -1 + an, n =0,1, …, 9, s 0=1.
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float a,b,h; //a- начало, b- конец, h-шаг
float c,s,x,y; // с- общий член, s-сумма ряда, x- аргумент функции,
// y- значение функции
int k,n; // k - параметр, n- кол-во членов ряда
clrscr();
printf("\n начало: а="); scanf("%f",&a);
printf(" конец: b="); scanf("%f",&b);
printf(" шаг: h="); scanf("%f",&h);
printf(" кол-во членов ряда: n="); scanf("%d",&n);
printf("\n Введено:a=%.2f \t b=%.2f \t h=%.2f \t n=%d",a,b,h,n);
for(x=a; x<=b+h/1000; x=x+h)
{
s=1;
c=1;
for(k=0; k<=n; k++)
{
c=-c*x*x/((2*k-1)*(2*k+2));
s=s+c;
}
y=cos(x)+x*sin(x);
printf("\n x=%.2f \t s=%f \t y=%f",x,s,y);
}
getche();
}
Результаты работы программы:
начало: а=0
конец: b=1
шаг: h=0.1
кол-во членов ряда: n=10
Введено:a=0.00 b=1.00 h=0.10 n=10
x=0.00 s=1.000000 y=1.000000
x=0.10 s=1.004987 y=1.004987
x=0.20 s=1.019800 y=1.019800
x=0.30 s=1.043993 y=1.043993
x=0.40 s=1.076828 y=1.076828
x=0.50 s=1.117295 y=1.117295
x=0.60 s=1.164121 y=1.164121
x=0.70 s=1.215795 y=1.215795
x=0.80 s=1.270592 y=1.270592
x=0.90 s=1.326604 y=1.326604
x=1.00 s=1.381773 y=1.381773
Дата публикования: 2015-01-23; Прочитано: 265 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!