Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/92: Рейтинг темы: голосов - 92, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 9

Вычислить значение arcsin x через разложение в ряд Тейлора

08.11.2011, 17:29. Показов 18080. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
оригинал
памагите ктони буть код проги есть на скрине только не выводит до конца результат тоже есть на скрине формула каторую надо использовать обведена в красный
Миниатюры
Вычислить значение arcsin x через разложение в ряд Тейлора   Вычислить значение arcsin x через разложение в ряд Тейлора   Вычислить значение arcsin x через разложение в ряд Тейлора  

1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2011, 17:29
Ответы с готовыми решениями:

Вычислить и вывести значение функции через разложение в ряд Тейлора
Здравствуйте, совсем не понимаю принцип условия данной задачи, прошу помощи! Требуется написать программу, которая вычисляет значение по...

Вычислить значение функции arcsin заданной разложением в ряд Тейлора
Вычислить значение функции arcsin заданной разложением в ряд Тейлора. Заранее спасибо

Рекурсия. Найти значение функции через разложение в ряд Тейлора
Собственно, сабж. Есть функция cos^2(x), которую я хочу разложить в ряд Тейлора. Вот отрывок кода с функцией: double func(double...

11
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
08.11.2011, 17:55
Лучший ответ Сообщение было отмечено как решение

Решение

http://rus.1september.ru/urok/
3
08.11.2011, 18:04

Не по теме:

скорее даже так:
Помогите, кто-нибудь! Код проги есть на скрине, только не выводит до конца результат, который тоже есть на скрине. Формула, которую надо использовать, обведена красным.

0
08.11.2011, 18:22

Не по теме:

Лол, я помню как когда-то смеялся над картинкой, где блондинка фотографировала монитор. Но силуэт человека с фотоаппаратом на первых двух картинках - это нечто.

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.11.2011, 11:26
хых, всё потому что в формуле неправильно домножаете
Показываю:
Берём 2 элемента a[n] и a[n + 1], найдём отношение a[n + 1]/a[n]
Приводя подобные получим
a[n + 1]/a[n] = n*pow((2*n + 1),2)*pow(x,2)/(n + 1)*(2*n + 3)*(2*n - 1)
Как видим отличается от вашего домножения и степень не куб а квадрат - интересно да?)
Ниже код и скрин работы алгоритма
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double f(double x, double eps)
{
    double v, sum = x;
    long n = 1;
    double fn = pow(x,3)/2.0;
    while(eps < fabs(fn))
    {
        sum += fn;
        n   += 1;
        fn *= n*pow((2*n + 1),2)*pow(x,2);
        fn /= 1.0*(n + 1)*(2*n + 3)*(2*n - 1);
    }
    return sum;
}
 
int main()
{
    char sign[] = " ";
    double x, fx, dx = 0, xn = 0, xk = 0, eps = 0;
    printf("Enter xn : ");scanf("%lf",&xn);
    printf("Enter xk : ");scanf("%lf",&xk);
    printf("Enter dx : ");scanf("%lf",&dx);
    printf("Enter eps: ");scanf("%lf",&eps);
    printf("|-----------------------------------|\n");
    printf("|    x   |  f(x)  |  asin |(sin-f)/f|\n");
    printf("|-----------------------------------|\n");
    for(x = xn; x <= xk; x += dx)
    {
        fx = f(x,eps);
        if(x < 0)
            sign[0] = '\0';
        else
            sign[0] = ' ';
        printf("|%s%.4f |%s%.4f |%s%.4f|%s%.4f  |\n",
            sign,x,sign,fx,sign,asin(fx),sign,(sin(x) != 0 ? fabs(sin(x) - fx)/sin(x) : 0));
    }
    printf("|-----------------------------------|\n");
    printf("Press any key to continue\n");
    getch();
    return 0;
}
Миниатюры
Вычислить значение arcsin x через разложение в ряд Тейлора   Вычислить значение arcsin x через разложение в ряд Тейлора  
1
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
19.10.2013, 22:07
Извиняюсь за некропостинг, понадобился сабж, а в программе ошибки.
Вот исправленный вариант, может кому сгодится:
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double f(double x, double eps)
{
    double v, sum = x;
    long n = 1;
    double fn = pow(x,3)/6.0;
    while(eps < fabs(fn))
    {
        sum += fn;
        n   += 1;
        fn *= (2*n - 1)*(2*n - 1)*x*x;
        fn /= 2*n*(2*n + 1);
    }
    return sum;
}
 
int main()
{
    char sign[] = " ";
    double x, fx, dx = 0, xn = 0, xk = 0, eps = 0;
    printf("Enter xn : ");scanf("%lf",&xn);
    printf("Enter xk : ");scanf("%lf",&xk);
    printf("Enter dx : ");scanf("%lf",&dx);
    printf("Enter eps: ");scanf("%lf",&eps);
    printf("|-----------------------------------|\n");
    printf("|    x   |  f(x)  |  asin |(sin-f)/f|\n");
    printf("|-----------------------------------|\n");
    for(x = xn; x <= xk; x += dx)
    {
        fx = f(x,eps);
        if(x < 0)
            sign[0] = '\0';
        else
            sign[0] = ' ';
        printf("|%s%.4f |%s%.4f |%s%.4f|%s%.4f  |\n",
            sign,x,sign,fx,sign,asin(fx),sign,(sin(x) != 0 ? fabs(sin(x) - fx)/sin(x) : 0));
    }
    printf("|-----------------------------------|\n");
    printf("Press any key to continue\n");
    getch();
    return 0;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
19.10.2013, 23:26
alexcoder, жду пояснений по поводу вот этого
Цитата Сообщение от alexcoder Посмотреть сообщение
fn *= (2*n - 1)*(2*n - 1)*x*x;
* * * * fn /= 2*n*(2*n + 1);
вижу не умеешь находить рекурретный сомножитель...
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
19.10.2013, 23:32
Я не теоретик, вычислил подбором членов, но с таким множителем погрешность на интервале |x|<1 строго укладывается в eps. Можешь проверить.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
19.10.2013, 23:47
alexcoder, мне не зачем проверять у тебя написан лаг в рекуррентном сомножителе.
Хочешь юзай сой код только не пиши на коровьий кизяк - казинака.

Добавлено через 6 минут
Цитата Сообщение от alexcoder Посмотреть сообщение
Можешь проверить.
проверил
http://codepad.org/BnT4Yi4g
Enter xn : Enter xk : Enter dx : Enter eps: |-----------------------------------|
| x | f(x) | asin |(sin-f)/f|
|-----------------------------------|
| 0.0000 | 0.0000 | 0.0000| 0.0000 |
| 0.1000 | 0.1000 | 0.1002| 0.0017 |
| 0.2000 | 0.2013 | 0.2027| 0.0134 |
| 0.3000 | 0.3045 | 0.3094| 0.0304 |
| 0.4000 | 0.4107 | 0.4232| 0.0546 |
| 0.5000 | 0.5232 | 0.5506| 0.0913 |
| 0.6000 | 0.6431 | 0.6985| 0.1389 |
| 0.7000 | 0.7747 | 0.8862| 0.2025 |
| 0.8000 | 0.9253 | 1.1817| 0.2898 |
| 0.9000 | 1.1165 | nan| 0.4253 |
| 1.0000 | 1.4847 | nan| 0.7644 |
|-----------------------------------|
Press any key to continue
думаю дальнейшее дискутирование бессмыслено
0
Заблокирован
19.10.2013, 23:54
Функция №3
Вложения
Тип файла: doc Lab_3_V2 (7).doc (85.0 Кб, 106 просмотров)
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
19.10.2013, 23:54
Молодец. А в моем варианте получилось так:
Dlya x=-0.900 do 0.910 s shagom 0.100 i tochnostyu 0.001

x n s f
--------------------------------------
-0.900 10 -1.116462 -1.119769
-0.800 6 -0.925271 -0.927295
-0.700 5 -0.774674 -0.775397
-0.600 4 -0.643082 -0.643501
-0.500 3 -0.523177 -0.523599
-0.400 2 -0.410667 -0.411517
-0.300 2 -0.304500 -0.304693
-0.200 2 -0.201333 -0.201358
-0.100 1 -0.100000 -0.100167
0.000 1 0.000000 0.000000
0.100 1 0.100000 0.100167
0.200 2 0.201333 0.201358
0.300 2 0.304500 0.304693
0.400 2 0.410667 0.411517
0.500 3 0.523177 0.523599
0.600 4 0.643082 0.643501
0.700 5 0.774675 0.775398
0.800 6 0.925271 0.927295
0.900 10 1.116462 1.119770
--------------------------------------
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
//описание переменных
    float x, s, f, x_nach, x_kon, delta_x, eps, temp;
    int n;
 
    printf("\nVvod ishodnix dannyh:\n");    //ввод исходных данных
    printf("\nx_nach=");                        
    scanf("%f", &x_nach);                               //начальное значение аргумента
    printf("\nx_kon=");                     
    scanf("%f", &x_kon);                                //конечное значение аргумента
    printf("\ndelta_x=");                       
    scanf("%f", &delta_x);                              //шаг изменения аргумента
    printf("\neps=");                       
    scanf("%f", &eps);                                  //точность вычислений
    
    //эхо-печать
    printf("\nDlya  x=%5.3f  do  %5.3f  s shagom  %5.3f  i tochnostyu  %5.3f\n", x_nach, x_kon, delta_x, eps);
 
    printf("\n   x      n         s            f");
    printf("\n--------------------------------------");
    
    x = x_nach;
    
    do              //внешний цикл - изменение аргумента
    {
        temp = pow(x,3)/6.0;    //первое слагаемое
        s = x;      //начальное значение суммы
        n = 1;      //количество итераций на каждом шаге
        f = asin(x);    //точное значение функции
        
            //внутренний цикл - вычисление суммы ряда
while (fabs(temp) > eps)
        {
            s += temp;  //очередная сумма
            
            n++;            //количество итераций 
            //очередное слагаемое
            temp *= (2*n - 1)*(2*n - 1)*x*x;
            temp /= 2*n*(2*n + 1);
    }
        
        printf("\n%5.3f     %d     %0.6f     %0.6f", x, n, s, f);
        
        x += delta_x;   //увеличение аргумента на шаг  delta_x
    }
    while (x <= x_kon);
    
    printf("\n--------------------------------------");
 
    getch();
    return 0;
}
Почему-то все работает. Можно называть это какашкой, можно вообще пост удалить, мне все равно. Но может кому-то понадобится. Дискуссию прекращаю.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.10.2013, 00:27
Цитата Сообщение от alexcoder Посмотреть сообщение
Почему-то все работает.
а ещё https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha \approx sin(\alpha ) \approx tg(\alpha ) для малых углов.
Ещё раз привожу научнообоснованный код
http://codepad.org/CCTtwU2C
| x | f(x) | asin |(sin-f)|
|-----------------------------------|
|-0.9000 |-1.1165 |nan|0.3331 |
|-0.8000 |-0.9253 |-1.1817|0.2079 |
|-0.7000 |-0.7747 |-0.8862|0.1305 |
|-0.6000 |-0.6431 |-0.6985|0.0784 |
|-0.5000 |-0.5232 |-0.5506|0.0438 |
|-0.4000 |-0.4107 |-0.4232|0.0212 |
|-0.3000 |-0.3045 |-0.3094|0.0090 |
|-0.2000 |-0.2013 |-0.2027|0.0027 |
|-0.1000 |-0.1000 |-0.1002|0.0002 |
|-0.0000 |-0.0000 |-0.0000|0.0000 |
| 0.1000 | 0.1000 | 0.1002| 0.0002 |
| 0.2000 | 0.2013 | 0.2027| 0.0027 |
| 0.3000 | 0.3045 | 0.3094| 0.0090 |
| 0.4000 | 0.4107 | 0.4232| 0.0212 |
| 0.5000 | 0.5232 | 0.5506| 0.0438 |
| 0.6000 | 0.6431 | 0.6985| 0.0784 |
| 0.7000 | 0.7747 | 0.8862| 0.1305 |
| 0.8000 | 0.9253 | 1.1817| 0.2079 |
| 0.9000 | 1.1165 | nan| 0.3331 |
|-----------------------------------|
И прошу тебя alexcoder, не путать людей. Для некоторых функций подходит кусочно линейная аппроксимация, к примеру синус в полупериоде можно неплохо заменить параболой, но это же не значит что на всей числовой оси параболическая зависимость опишет синус одинаково хорошо. Считай что с отрабаоткой тебе просто повезло, но прошу не путай людей.

Добавлено через 1 минуту
При этом вот твои слова
Цитата Сообщение от alexcoder Посмотреть сообщение
Я не теоретик, вычислил подбором членов,
ну будь добр тогда обоснуй своё решение, если его обоснование будет научно обоснованным я возьму в работу именно твои идеи.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2013, 00:27
Помогаю со студенческими работами здесь

Вычислить sin(x) с заданной точностью через разложение в ряд Тейлора
нужна ваша помощь!!! используя разложение в ряд тейлора, найти значение sin(x) с заданной точностью eps.

Как вычислить значение функции используя разложение cos в ряд Тейлора???
Вычислить значение функции y, разложив cos(x) в ряд Тейлора. Аргумент х изменяется от -2 до 2 с шагом 0,5. Определить погрешность. ...

Вычислить значение функции exp(x) с точностью 0.001 (разложение в ряд Тейлора)
вычислить значение функции exp(x) с точностью 0.001, разложив функцию в ряд Тейлора где ошибка не подскажите? вычисляет не верно.......

Вычислить значение е^х через разложение в ряд
Задали задачку....вот немогу реить,неполучается с условием пишет ошибку Вычеслить значение е (в степени) х ,используя ряд...

Вычисление функции через разложение в ряд (Ряд Тейлора)
Привет всем. Задание такого плана: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru