vorovaika
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору list_wish не так как-то работает?дык это и есть в массиве или нет???? Добавлено: А эту никто не знает? Вроде бы легко,но не додумать Написать программу для вычисления значения функции, заданной с помощью рядов. При условии, что заданная функция имеет аналитическое решение, сравнить значение рядной функции с точным. Вычислить значения невязки значений рядной и стандартной (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 вот основа...но не работает: #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; } |