|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2011, 00:12 | #1 |
Регистрация: 09.11.2011
Сообщений: 7
|
Ряд тэйлора, код есть , не считает точность
значения от -0.5 до 0.5 с шагом 0.1 и точностью 0.000001
http://s005.radikal.ru/i209/1111/24/d0670bc45351.jpg ввожу точность 0.000001 а значения такие же и остаются( помогите #include <stdio.h> #include <math.h> #include <float.h> int main(){ const int MaxIter=500; double xn,xk,dx,eps; printf("enter xn,xk,dx,eps\n"); scanf("%lf%lf%lf%lf",&xn,&xk,&dx,&e ps); printf("\n|X|acos|Y|n|"); printf("\n_________________________ ________"); for (double x=xn;x<=xk;x+=dx){ double ch=1,y=x,z,s=0; z=acos(x); for(int n=1;fabs(ch)>eps&&n<MaxIter;n+=2){ ch*=((2*n-1)*pow(x,2*n+1))/(2*n*(2*n+1)); y=y+ch; s=s+1;} y=(3.1415926/2)-y; if(n<MaxIter)printf("\n|%9.2lf|%9.5 lf|%9.5lf|%9d|\n",x,z,y,int(s)); else printf("\n Ryad rashoditsya!"); } return 0; } |
09.11.2011, 13:04 | #2 | |
Пользователь
Регистрация: 30.05.2009
Сообщений: 10
|
По моему все работает, просто члены итерации ch очень быстро уменьшаются по модулю, поэтому и не заметно разницы в получаемых значениях. Можешь в этом убедиться если выведешь на экран после каждой итерации получаемые значения ch.
Цитата:
Последний раз редактировалось zmejchik; 09.11.2011 в 13:09. |
|
09.11.2011, 17:21 | #3 |
Регистрация: 09.11.2011
Сообщений: 7
|
спс, но до меня препод докапывается , что типа не видно разницы что я ввожу точность 0.0001 и 0.000001
|
11.11.2011, 12:33 | #4 |
Пользователь
Регистрация: 30.05.2009
Сообщений: 10
|
Единственно что могу предложить, округлять полученные значения до требуемой точности, пример если точность 0,01 то округлять до сотых итд.
|
12.11.2011, 09:02 | #5 |
Регистрация: 09.11.2011
Сообщений: 7
|
а как это сделать?
|
13.11.2011, 16:27 | #6 |
Пользователь
Регистрация: 30.05.2009
Сообщений: 10
|
Округлением занимаются floor и ceil из <math.h> (в C++ — std::floor, std::ceil из <cmath>).
Есть еще такой метод Округление до тысячных : (число*1000+0.5) преобразуем к типу целых и делим на 1000. Последний раз редактировалось zmejchik; 14.11.2011 в 11:31. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программка в Борланд Си... Программа есть... Ошибку не высвечивает но и не считает... Спасайте... | Катюшенька | Помощь студентам | 1 | 18.05.2009 22:21 |
ряд Тэйлора ,посмотрите если не сложно | танечка155 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.11.2008 19:41 |
Работа по Паскалю, Ряды Тэйлора. | Dexterello | Помощь студентам | 4 | 28.11.2008 05:53 |
Есть код!! | Danilyuk | Помощь студентам | 1 | 31.05.2008 00:46 |
помогите с задачей! ряд тэйлора | heartdrive | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 11.05.2008 22:05 |