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

Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5

09.05.2012, 10:22. Показов 10071. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5. Погрешность ε вычислять с помощью следующего соотношения:
| f(x)подстрочный знак n - f(x) подстрочный знак n-1 | <= ε

Определить количество членов ряда, сравнить полученное значение суммы со знаком функции, полученным с помощью стандартных функций языка С++.

sin(x)=sum (-1)^k*(x^2k+1/(2k+1)!)
k=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
// задание3.cpp 
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
int _tmain(int argc,_TCHAR* argv[])
{ 
    setlocale(LC_CTYPE,"Russian");
    float eps=0.001;
    //Определяем необходимые переменные х
    //k-номер члена ряда
    //y-переменная для хранения текущего значения суммы ряда.
    //y1-переменная для хранения предыдущего значения суммы ряда.
    //y0-переменная для хранения значения функции вычисленного
    //на основе стандатрных математических функций.
    double x,y,y1,y0;
    int k=0;
 
    //Вводим переменную х
    cout<<"Введите х=";cin>>x;
 
    y=1;//Задаем начальное значение у
 
    //Основной цикл для расчета суммы ряда
    do
    {
        //сохраняем предыдущие значение суммы ряда
        y1=y;
 
        //Вычисляем текущее значение суммы ряда
        k++;
        //kf-переменная для хранения факториала
        int kf=1;
        //Вложенный цикл для расчета факториала
        for(int m=1;m<=(k*2+1);m++)
        kf*=m;
        //накопление суммы ряда
        y+=pow(-1.,k)*(pow(x,2*k+1)/kf);
    }while(fabs(y-y1) > eps);
        //Количество членов ряда
         k=k+1;
 
    //Расчет точного значения для проверки
    y0=sin(x);
    cout<<"Результат расчета с "<<9<<"членами ряда:"<<setw(9)<<setprecision(5)<<y<<endl;
    cout<<"Точное значение ряда:"<<setw(9)<<setprecision(5)<<y0<<endl;
 
    return 0;
}
получается большая погрешность: Результат расчета с 9 членами ряда 0,4975
Точное значение ряда 0,99749

Заранее Большое спасибо!!!

Добавлено через 20 часов 14 минут
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2012, 10:22
Ответы с готовыми решениями:

Вычислить приближенное значение функции y(x) при x=x0 c заданной точностью до ε разложив её на ряд Маклорена
Вычислить приближенное значение функции y(x) при x=x0 c заданной точностью до ε разложив её на ряд Маклорена f(x)=x^2*e^x; x1=0.3,...

Вычислить приближенное значение функции y(x) при x=x0 c заданной точностью до ε разложив её на ряд Маклорена
Вычислить приближенное значение функции y(x) при x=x0 c заданной точностью до ε разложив её на ряд Маклорена f(x)=x^2*e^x; x1=0.3,...

Даны числа ε>0 и x. Вычислить с точностью ε значение функции y:
Даны числа ε&gt;0 и x. Вычислить с точностью ε значение функции y: y=\sin...

7
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
09.05.2012, 12:04
Ну, как вариант, у вас переменная kf имеет тип int. В ней могут храниться значения от -32768 до 32767. Таким образом, 7! в нее еще влезет, а вот 9! уже никак.
А, и еще. Функция pow считает как e^(y*lnx), что не прибавляет ей точности. Для целых степеней будет лучше написать свою функцию возведения в степень, а для -1^k, наверное, лучше просто сделать условие if. Если k%2==0, то к сумме прибавляем этот член, иначе -- отнимаем.
А так вроде все правильно.

Добавлено через 13 минут
А, нет! Еще не все! Если вы заметите, что каждый следующий член ряда получается из предидущего домножением на x^2 и делением на 2k*(2k+1), и слегка перепишете, чтобы его сохранять, то факториал можно будет не писать, а ваш процессор будет благодарить вас до конца жизни.
1
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 12:06
Цитата Сообщение от UFO94 Посмотреть сообщение
Ну, как вариант, у вас переменная kf имеет тип int. В ней могут храниться значения от -32768 до 32767.

Минимальное значение для int −2,147,483,648
Максимальное значение для int +2,147,483,647


http://ru.wikipedia.org/wiki/Limits.h
0
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
09.05.2012, 12:14
Угу... я, похоже, написал либо для Borland C++ 4.5, либо просто левый ресурс...
http://citforum.ru/programming... _017.shtml
0
0 / 0 / 0
Регистрация: 08.05.2012
Сообщений: 4
09.05.2012, 21:24  [ТС]
исправил!
Результат расчета с 9 членами ряда: 1
Точное значение ряда: 0,99749
Лучше чем 0.5 в погрешности,но видать опять где то что-то не так.

Можете написать условие if. Если k%2==0, то к сумме прибавляем этот член, иначе -- отнимаем.
Может я что то не так поставил туда или так и должно быть в ответе)
Сложно новенькому)))
0
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
09.05.2012, 23:25
Вы, кстати, учли замечание по поводу упрощения подсчетов?
Допустим, текущий член ряда p.
Тогда:
C++
1
2
3
if(k%2==0)
y+=p;
else y-=p;
0
0 / 0 / 0
Регистрация: 08.05.2012
Сообщений: 4
11.05.2012, 19:29  [ТС]
еще нет)пока нет времени, в выходные попробую,правда пока не знаю как))может образец у кого есть упрощения или примерно что должно быть))до конца месяца надо еще 3 задачи выполнить а времени не так и много)

Добавлено через 21 час 38 минут
что-то вообще не выходит(((а как упростить формулу?
0
30 / 30 / 12
Регистрация: 15.11.2009
Сообщений: 148
11.05.2012, 20:24
написал на си, мне так привычнее=)
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>//подключаем библиотеку math.h, в ней лежит функция fabs, которую мы используем в своей программе
 
float Sin1(float x,float e)//объявляем функцию Sin1, возвращающую значение типа float, принимающую на вход два значения того же типа
{
      float slag,res,i=0;/*объявляем переменную slag - для хранения текущего слагаемого, res - 
      для хранения результата и вспомогательную i - для вычисления очередного слагаемого*/
      slag=x;//присваиваем переменной слаг её первое значение
      res=slag;//присваиваем переменной результата ее первое значение
      while(e<fabs(slag))//пока не достигнем требуемой точности
      {                  
               i++;
               slag*=((x*x)*(-1)/((2*i+1)*(2*i)));   //вычисляем новое слагаемое
                         res+=slag;//прибавляем его к результату
                         }
      return res;//возвращаем результат
      };
 
int main()
{
    float e=0.5;//это для вывода многих значений потребуется, чтобы потестить 
    //нашу функцию при изменяющемся параметре точности вычислений
    int i=0;//переменная счетчик
    for(i=0;i<101;i++){
  printf("%f %f\n",Sin1(3,e),e);e-=0.005;}//много раз выводим значение Sin1 с изменяющимся параметром точности e  
  system("PAUSE");  
  return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2012, 20:24
Помогаю со студенческими работами здесь

Вычислить с заданной точностью ε значение функции Y для каждого из 20 значений Х
В общем задача такая: Вычислить с заданной точностью ε значение функции Y для каждого из 20 значений Х: Y = 1 – X / 2 + (1*3*X2) /...

Для функций, представленных ниже бесконечными рядами, вычислить их приближённые значения с точностью ε=10-3 в точке x=1,5.
задача находиться во вложенном документе,буду признателен если поможете решить задачу.

Для функций, представленных ниже бесконечными рядами, вычислить их приближённые значения с точностью ε=10-3 в точке x=1,5
Для функций, представленных ниже бесконечными рядами, вычислить их приближённые значения с точностью ε=10-3 в точке x=1,5. Погрешность...

Вычислить приближенное значение функции двух переменных в данной точке
Вычислить приближенное значение функции в точке А. 2+\arcsin (x/y) (0,04; 3,96)

Вычислить с точностью ε = 0.00001 значение функции корень из х
Привет. Подскажите, исправьте, не могу разобраться Imports System.Math Public Class Form1 Function vvod(ByVal T As TextBox) As...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru