#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include "math.h"
using namespace std;
float mycos(float x, float eps)
{
int n=1;
float summ=0;
float an, an1;
do
{
an=1-powf(x,2)/(n*(n+1));
summ+=an;
an1=1-(powf(x,2))/(n*(n+1)) + (powf(x,4))/n*((n+1)*(n+2)*(n+3));
n++;
}
while(fabs(an1-an)>=eps);
return summ;
}
int main()
{
float xn,xk,dx,cos, x, eps, mcos,xi,delta,epsi,mycos;
printf("Ryad cos(x)=1-x^2/2! + x^4/4! - x^6/6!... Input data:\n");
printf("Xn=");
scanf("%f",&xn);
printf("Xk=");
scanf("%f",&xk);
printf("dX=");
scanf("%f",&dx);
printf("eps=");
scanf("%f",&eps);
printf("IdealX=");
scanf("%f",&xi);
printf("----------------------------------------------------------\n");
printf("| x | cos | mycos | delta |\n");
printf("----------------------------------------------------------\n");
for(x=xn;x<=xk+dx;x+=dx)
{
printf("| %9.6f | %9.6f | %9.6f | %15.8f |\n",x,cos, mcos, delta);
printf("----------------------------------------------------------\n");
delta=sqrt(fabs(powf(mcos,2)-powf(cos,2)));
}
printf("-----------------------------------------------------------------------------\n\n\n");
printf("--------------------------------------------------\n");
printf("| idX=%8.6f |\n",xi);
printf("--------------------------------------------------\n");
printf("| eps | cos | mycos | delta |\n");
printf("--------------------------------------------------\n");
for(epsi=0.1;epsi>0.0000001;epsi/=10)
{
delta=sqrt(fabs(powf(mcos,2)-powf(cos,2)));
printf("| %9.7f | %9.6f | %9.6f | %9.6f|\n", epsi, cos, mcos, delta);
printf("--------------------------------------------------\n");
}
printf("---------------------------------------------------\n");
return 0;
}
[С++] Ряды
Написать программу для вычисления значения функции, заданной с помощью рядов. При условии, что заданная функция имеет аналитическое решение, сравнить значение рядной функции с точным. Вычислить значения невязки значений рядной и стандартной (Windows) функций delta=sqrt((myfunc(x))^2-(func(x))^2), проанализировать динамику изменения значения невязки в зависимости от количества слагаемых в ряде.
cos(x)=1-x^2/2!+x^4/4!-x^6/6!...
В работе должны вводиться с клавиатуры следующие переменные:
Точность eps , границы промежутка вычисления x start и x end и шаг dx , значение x ideal для точного расчета.
В результатах работы должно быть представлено две таблицы:
___________________________________________
x | MyFunc(x)| Function(x) | delta |
___________________________________________
x start | | | |
___________________________________________
... | | | |
__________________________________________
x end | | | |
__________________________________________
x ideal=……
________________________________________
eps |MyFunc(x) |Function(x) | delta |
________________________________________
0.1 | | | |
________________________________________
... | | | |
_________________________________________
0 .0000001 | | | |
_________________________________________
Для остановки счета рядов необходимо использовать следующее условие:
|F(x с индексом n)-F(x с индексом n-1)|<eps
вот основа...но не работает:
Код:
[COLOR="Red"]Оформляем код по Правилам при помощи тегов [/COLOR] [ code ] ... [ /code ] . модератор.
ааа..все..((зачетная неделя((((((((