Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 26.09.2019
Сообщений: 14

Ряд Тейлора

20.12.2019, 17:45. Показов 952. Ответов 5

Студворк — интернет-сервис помощи студентам
Всем здравствуйте.Прошу помощи от безысходности)). Вот вроде бы все правильно посчитал, перепроверил, но при выводе значений ряда в границах от -2 до 2(это обязательно) и шагом табулирования 0.1, в точках -0.1 и 0.1 какого то черта значения отличаются на 0.0001(в -0.1 значение=0.7937, а в 0.1=0.7938), хотя во всех остальных точках значения равны, из чего должно бы следовать, что функция четная, но эти 2 точки не дают сделать такой вывод. И еще один вопрос-как пропустить табуляцию в точке, где x=0, или просто сделать так, что бы при выводе таблицы не было строчки с x=0?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <stdio.h>
#include <stdlib.h>
#include "locale.h"
#include <math.h>
 
float FuncRec (float x, float eps) {
float n = 1;
float a = 1/(3*x);
 
float SIG = 0;
 
do {
n=n+1;
a = a*(1/((2*n+2)*(2*n+3)*x));
SIG = SIG + a;
}
 
while ( abs(a)>=eps );
 
return SIG;
 
}
 
 
int main() {
float A,B;
float r,eps,Fx,x;
setlocale(LC_CTYPE, "RUSSIAN");
printf("Печатается таблица функции заданной рядом Тейлора\nВведите границы интервала ");
 
printf("\nЛевая=");
scanf("%f",&A);
printf("Правая=");
scanf("%f",&B);
 
while(A>=B)
 
{
 
printf("Левая должна быть меньше правой! Повторите");
printf("\nЛевая=");
scanf("%f",&A);
printf("Правая=");
scanf("%f",&B);
 
}
 
printf("Введите шаг табулирования:");
scanf("%f",&r);
while(r<=0||r>(B-A))
 
{
 
printf("Шаг должен быть меньше длины интервала\nПовторите:");
scanf("%f",&r);
 
}
 
printf("Введите допустимую погрешность вычисления\n0<eps<1:");
scanf("%f",&eps);
while(eps<=0||eps>=1)
 
{
 
printf("Введено недопустимое значение.Положено eps=0.00001\nПовторите:");
 
scanf("%f",&eps);
 
}
 
 
printf ("==================================\n");
printf("| x | F(x) |\n");
printf("===================================\n");
 
for(x=A;x<B;x+r){
 
Fx=FuncRec(x,eps);
printf("| %2.4f | %2.4f |\n",x,Fx);
x=x+r;
 
}
 
printf("===================================\n");
 
return 0;
 
}
Миниатюры
Ряд Тейлора  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2019, 17:45
Ответы с готовыми решениями:

Ряд Тейлора
Нужно протабуллировать функцию с помощью ряда Тейлора. Если не затруднит, то желательно с комментариями.

Ряд тейлора
Написать программу с do while функции f(x) =10^x, разложенной в ряд тейлора с погрешность 0.001

Ряд Тейлора(СИ)
Составить программу вычисления значений функций на заданном отрезке с точностью e=10-6, воспользовавшись формулами разложения элементарных...

5
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
20.12.2019, 20:05
Цитата Сообщение от Aledes555 Посмотреть сообщение
сделать так, что бы при выводе таблицы не было строчки с x=0?
Да, конечно
По главному вопросу. Да забудь ты на фиг, что есть такой тип данных - float! Только double!

Добавлено через 2 минуты
Используя float, ты еще нахлебаешься подобной "безисходности"
1
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
21.12.2019, 20:46
Цитата Сообщение от Aledes555 Посмотреть сообщение
Вот вроде бы все правильно посчитал, перепроверил
Я подозреваю, что есть ошибки. Должно быть:
8-я строка float a = 2/(3*x);
14-я строка a = a*(1/((2*n)*(2*n+1)*x));
И потом, откуда вы взяли, что функция четная? Глядя на ряд я сильно в этом сомневаюсь.

Добавлено через 3 минуты
К вашей функции нельзя обращаться не только в тех случаях, когда x=0, но также и в случаях, когда x близко к нулю, например, когда x по модулю меньше эпсилон.

Добавлено через 1 минуту
Когда вы будете шагать от -2 с шагом 0.1 точно в ноль вы скорее всего не попадете, поскольку число 0.1 в машине будет представлено с некоторой погрешностью.
1
0 / 0 / 0
Регистрация: 26.09.2019
Сообщений: 14
21.12.2019, 22:01  [ТС]
Да, конечно
так как, если не секрет, пропустить табуляцию в точке 0?
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
21.12.2019, 22:10
C
1
2
3
4
5
6
7
for(x=A;x<B;x+r){
    if(fabs(x) > eps {
        Fx=FuncRec(x,eps);
        printf("| %2.4f | %2.4f |\n",x,Fx);
    }
    x=x+r;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
22.12.2019, 00:05
Цитата Сообщение от Aledes555 Посмотреть сообщение
как, если не секрет, пропустить табуляцию в точке 0?
Я думаю, что это не так уж и сложно. Но копаться в вашем коде, наполненном всякими не имеющими отношения к делу штуками, поверьте, нет охоты.
Научитесь выделять проблему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2019, 00:05
Помогаю со студенческими работами здесь

Функции ряд Тейлора
Не могу разобраться .

Исправить ряд Тейлора
Вычислить и вывести на экран в виде таблицы значения функции на интервале от xнач до xкон с шагом dx. ...

Разложение в ряд Тейлора
Пожалуйста, помогите исправить программу. Условие: http://s4.postimage.org/yQXtS-620b0f549d936458015e8978580b7174.png Мой код: ...

Косинус через ряд Тейлора
Вот надо написать функцию косинуса через тейлора без математических библиотек. Но так как я еще нуб, у меня не правильно)). Поправьте плз....

Разложить в ряд Тейлора arccos(x)
Здравствуйте, помогите переделать программу. У меня есть код, вычисляющий значение arcsin(x) с помощью ряда Тейлора. Как переделать ее под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru