Форум программистов, компьютерный форум CyberForum.ru

си++ вычислить значение функции на отрезке - C++

Восстановить пароль Регистрация
 
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
24.06.2012, 10:52     си++ вычислить значение функции на отрезке #1
вычислить и вывести на экран значение функции f(х) на отрезке [a,b] с шагом h=0.1 и точностью е. результат представить в виде таблицы и пре решении использовать вспомогательную функцию
f(x)=1+x+x^2/2!+x^3/3!+...+http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{x}^{n}}{n!}
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
#include<iostream.h>
#include<math.h>
#include<iomanip>
 float fun(float x, float e, int &n)
 { float s=0, a=1, b=1; n=0;
 int i=0;
 while(fabs(a)>=e)
 { s+=a; b*=x;
 a*=b/i; i++;
 n++;
return s; }
}
int main()
{ float a,b,e,h,f,x;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"h="; cin>>h;
cout<<"e="; cin>>e;
int n,i;
cout<<setprecision(3);
cout<<"i\t x\t f(x)\t n\n";
for(x=a, i=0; x<=b; x+=h, i++)
{ f=fun(x,e,n);
cout<<i<<"\t"<<x<<"\t"<<f<<"\t"<<n<<endl; }
return 0; }
при a=0, b=1, h=0.1 и любой точности, например е=0.0001, в столбцах f(x) и n пишутся единицы. я голову сломал что исправить нужно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 10:52     си++ вычислить значение функции на отрезке
Посмотрите здесь:

Вычислить значение функции на отрезке. C++
циклические вычислительные процессы: вычислить значение функции на отрезке C++
Вычислить и вывести на экран значение функции F(x) на отрезке [a,b] с шагом h=0.1 с точностью ε. C++
Вычислить и вывести на экран значение функции F(x) на отрезке [a,b] с шагом h=0.1 и точностью е C++
Вычислить значение функции на отрезке и результат представить в виде таблицы C++
C++ Вычислить значение функции на отрезке. Результат представить в виде таблицы.
C++ Вычислить значение функции f (x) на отрезке [a, b]
Вычислить значение функции arcrgx+sinx на отрезке [ a, b ] с шагом h и точностью ε Поправить C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
24.06.2012, 10:58     си++ вычислить значение функции на отрезке #2
а что тут ломать? у тебя по определению цикл while(fabs(a)>=e) выполняетвя строго один раз и возвращает значение.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
24.06.2012, 11:10  [ТС]     си++ вычислить значение функции на отрезке #3
Цитата Сообщение от novi4ok Посмотреть сообщение
а что тут ломать? у тебя по определению цикл while(fabs(a)>=e) выполняетвя строго один раз и возвращает значение.
ступил, скобку пропустил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream.h>
#include<math.h>
#include<iomanip.h>
 float fun(float x, float e, int &n)
 { float s=0, a=1, b=1; n=0;
 int i=0;
 while(fabs(a)>=e)
 { s+=a; b*=x;  a*=b/i; i++;  n++; }
return s; }
int main()
{ float a,b,e,h,f,x;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"h="; cin>>h;
cout<<"e="; cin>>e;
int n,i;
cout<<setprecision(3);
cout<<"i\t x\t f(x)\t n\n";
for(x=a, i=0; x<=b; x+=h, i++)
{ f=fun(x,e,n);
cout<<i<<"\t"<<x<<"\t"<<f<<"\t"<<n<<endl; }
return 0; }
теперь при тех же значениях в f(x) пишет сначала 1, потом Infinity

Добавлено через 3 минуты
все, понял почему инфинити. в 6 строке отсчет с нуля шел, поставил 1
Yandex
Объявления
24.06.2012, 11:10     си++ вычислить значение функции на отрезке
Ответ Создать тему
Опции темы

Текущее время: 13:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru