|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ряд Тейлора, #IND |
|
C/C++ - Ряд Тейлора, #IND
|
Новый участник Сообщения: 37 |
Профиль | Отправить PM | Цитировать Здраствуйте, задача состоит в просчете ряда Тейлора в области от -1 до 1, с вводом шага и точности.
Я уже набросал кое-что, вот код: #include <iostream> #include <conio.h> #include <math.h> #include <iomanip> using namespace std; int fct(int arg) { return (arg == 1) ? 1 : arg * fct(arg - 1); } int main(){ long double f; double Xstart=-1,Xend=1,x,dx,e,realF; int n; cout<<"Vvedite E"<<endl; cin>>e; cout<<"Vvedite shag"<<endl; cin>>dx; //------ cout<<"--------------------------\n"; cout<<" x | F | n | real function) "; cout<<endl; //pow(x,n)*fct(n-3)/(fct(3)*fct(n)); for(x=Xstart;x<=Xend; x+=dx) { f = 0; realF = pow((x-1),-4); n = 0; while(fabs(realF-f)>e) { n++; f -=pow(x,n)*fct(n+3)/(fct(3)*fct(n)); } cout<<setw(6)<<setprecision(2)<<x<<" | "<<setw(10)<<setprecision(7)<<f<<" | "; cout<<setw(3)<<n<<" | "<<setw(10)<<setprecision(7)<<realF<<endl; } getch(); return 0; } Вот сам ряд Тейлора: |
|
Отправлено: 13:53, 26-10-2013 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Ряд явно не сходится к функции:
-------------------------- x | F | n | real function) -1 | 0 | 0 | 0.0625 -0.9 | 0 | 0 | 0.0767336 -0.8 | 0 | 0 | 0.09525987 -0.7 | -2 | 32 | 0.1197304 -0.6 | -2 | 32 | 0.1525879 -0.5 | -1.#QNAN | 6 | 0.1975309 -0.4 | -2 | 32 | 0.2603082 -0.3 | -2.353437e-185 | 2 | 0.3501278 -0.2 | -9.255963e+061 | 2 | 0.4822531 -0.1 | -2 | 32 | 0.6830135 -1.4e-016 | -2 | 32 | 1 0.1 | -2 | 32 | 1.524158 0.2 | -2 | 32 | 2.441406 0.3 | -2 | 32 | 4.164931 0.4 | -2 | 32 | 7.716049 0.5 | -2 | 32 | 16 0.6 | -2 | 32 | 39.0625 0.7 | -2 | 32 | 123.4568 0.8 | -2 | 32 | 625 0.9 | -2 | 32 | 10000 1 | -2 | 32 | 4.113761e+062 precision=0.1 step=0.1 max(n)=30 -------------------------- x | f | realF | fabs(f-realF) | n | df | -1.00 | 2856.0000000 | 0.0625000 | 2855.9375000 | 30 | 32736.0000000 | -0.90 | 115.0506380 | 0.0767336 | 114.9739044 | 30 | 1387.7169573 | -0.80 | 3.2540949 | 0.0952599 | 3.1588351 | 30 | 40.5252051 | -0.70 | 0.1731763 | 0.1197304 | 0.0534459 | 30 | 0.7378478 | -0.60 | 0.1550833 | 0.1525879 | 0.0024954 | 26 | 0.0373983 | -0.50 | 0.1993942 | 0.1975309 | 0.0018634 | 18 | 0.0304413 | -0.40 | 0.2628344 | 0.2603082 | 0.0025262 | 12 | 0.0458018 | -0.30 | 0.3489074 | 0.3501278 | 0.0012204 | 9 | -0.0259816 | -0.20 | 0.4834560 | 0.4822531 | 0.0012029 | 6 | 0.0322560 | -0.10 | 0.6835000 | 0.6830135 | 0.0004865 | 4 | 0.0210000 | -0.00 | 1.0000000 | 1.0000000 | 0.0000000 | 1 | -0.0000000 | 0.10 | 1.5235000 | 1.5241579 | 0.0006579 | 4 | 0.0210000 | 0.20 | 2.4392960 | 2.4414062 | 0.0021102 | 6 | 0.0322560 | 0.30 | 4.1622159 | 4.1649313 | 0.0027154 | 9 | 0.0259816 | 0.40 | 7.7088083 | 7.7160494 | 0.0072411 | 12 | 0.0458018 | 0.50 | 15.9931564 | 16.0000000 | 0.0068436 | 18 | 0.0304413 | 0.60 | 39.0502607 | 39.0625000 | 0.0122393 | 26 | 0.0373983 | 0.70 | 123.0628347 | 123.4567901 | 0.3939554 | 30 | 0.7378478 | 0.80 | 581.2462473 | 625.0000000 | 43.7537527 | 30 | 40.5252051 | 0.90 | 4461.8495183 | 10000.0000000 | 5538.1504817 | 30 | 1387.7169573 | 1.00 | 46376.0000000 | 411376139330301510000000000000000000000000000000000000000000000.0000000 | 41137613933030 1510000000000000000000000000000000000000000000000.0000000 | 30 | 32736.0000000 | |
Отправлено: 10:48, 27-10-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 37
|
Профиль | Отправить PM | Цитировать pva, можешь скинуть свой код?
|
Отправлено: 12:34, 27-10-2013 | #3 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать stalker_dj, этот путь каждый должен пройти сам
я взял твой код, вместо строчки вставил то, что написано в картинке, а вместо условие сходимости ряда (к пределу сходимости, а не к ожидаемому значению предела, условие сходимости Коши). В граничных точках ряд по крайней мере численно не сходится, там потребовалось ограничение для n. ну и добавил "косметики"... не пользуйся чужим кодом, именно эту лабу сделай сам. У тебя получится и тебе понравится "нет времени" - не считается аргументом. Время только у зеков есть |
Отправлено: 15:30, 27-10-2013 | #4 |
Новый участник Сообщения: 37
|
Профиль | Отправить PM | Цитировать pva, спасибо, я понимаю, день сидел, думал, разными способами пробовал...
Код попросил не для того, думал ты другим способом делал, так, для общего развития |
|
Отправлено: 01:00, 28-10-2013 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - ряд простых задач | элькхар | Тест-форум | 1 | 23-10-2012 10:41 | |
C/C++ - Ряд Тейлора | ka_omsk | Программирование и базы данных | 10 | 22-03-2011 19:52 | |
Разное - Ряд проблем с семеркой | treehel | Microsoft Windows 7 | 1 | 05-02-2010 13:16 | |
звуковой ряд | CHIKANOV | Видео и аудио: обработка и кодирование | 2 | 21-10-2005 21:05 | |
Ряд вопросов | Guest | Сетевые технологии | 1 | 12-05-2004 14:55 |
|