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

Вычисление с заданной точностью - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Aleksandra
 Аватар для Aleksandra
4 / 4 / 2
Регистрация: 20.11.2009
Сообщений: 37
20.11.2009, 01:56     Вычисление с заданной точностью #1
Помогите пожалуйста решить задачу на С++.
Даны положительные действительные числа А, Х, Е(epsilon). В последовательности У1,У2,... ,образованной по закону
У0=А; Уi=1/2(Уi-1 +Х/Уi-1) , i=1,2,3,4........? (i, i-1 --индексы У) найти первый член Уn, для которого выполнено неравенство |Уn*Уn-Уn-1*Уn-1|<Е (n, n-1 -- индекс У)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ser4ega
27 / 27 / 3
Регистрация: 15.11.2009
Сообщений: 143
20.11.2009, 02:44     Вычисление с заданной точностью #2
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 <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
int main()
{
      float a,x,e,n=0,v=131.0;//nadeyus nas interesuyut malye e
      printf("Vvedite A\n");scanf("%f",&a);
      printf("Vvedite X\n");scanf("%f",&x);
      printf("Vvedite E\n");scanf("%f",&e);
      
      while (v>e) 
      {
          v=fabsf((0.5*(a+(x/a)))*(0.5*(a+(x/a)))-(a*a));
          a=0.5*(a+x/a); 
          n+=1;  
            
      }
      printf("N ravno %d\n",n);
      printf("A ravno %f\n",a);
      printf("Znachenie vyrazheniya budet %f",v);
      
     system("PAUSE");   
}
Вопрос: почему этот код нерабочий?

Добавлено через 11 минут
ну, допустим находит он не Аn, а Аn-1, но все равно плохо работает.
Aleksandra
 Аватар для Aleksandra
4 / 4 / 2
Регистрация: 20.11.2009
Сообщений: 37
20.11.2009, 03:02  [ТС]     Вычисление с заданной точностью #3
А что это за V, почему v=131.0 ?
ser4ega
27 / 27 / 3
Регистрация: 15.11.2009
Сообщений: 143
20.11.2009, 03:33     Вычисление с заданной точностью #4
Вопрос я задал тем, кто знает си) то есть, я не могу найти ошибку, а она есть
V - точность
131 - потому что ничего лучше не придумал, вот проснутся гуру, зайдут сюда ненароком и скажут, как присвоить V максимальное значение для ее типа)
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.11.2009, 06:40     Вычисление с заданной точностью #5
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
#include <stdlib.h>
#include <math.h>
 
int main()
{
      double a,x,e,v, c;//nadeyus nas interesuyut malye e
      int n=1;
      printf("Vvedite A\n");scanf("%lf",&a);
      printf("Vvedite X\n");scanf("%lf",&x);
      printf("Vvedite E\n");scanf("%lf",&e);
      v=0.5*(a+(x/a));
      while (fabs(v*v-a*a)>=e) 
      {
          c=fabs(v*v-a*a);
          a=v;
          v=0.5*(a+(x/a));     
          n++;
      }
      printf("N ravno %d\n",n);
      printf("Znachenie vyrazheniya budet %lf\n",v);
      
     system("PAUSE"); 
     return 0;
}
ser4ega
27 / 27 / 3
Регистрация: 15.11.2009
Сообщений: 143
20.11.2009, 14:18     Вычисление с заданной точностью #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
printf("Znachenie vyrazheniya budet %lf\n",v);
заменить на
C
1
printf("Znachenie vyrazheniya budet %lf\n",fabs(v*v-a*a));
чтобы значение выражения, которое выводится, было меньше е
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.11.2009, 14:25     Вычисление с заданной точностью #7
ser4ega, Не согласен,
Цитата Сообщение от Aleksandra Посмотреть сообщение
найти первый член Уn, для которого выполнено неравенство |Уn*Уn-Уn-1*Уn-1|<Е
ser4ega
27 / 27 / 3
Регистрация: 15.11.2009
Сообщений: 143
20.11.2009, 14:36     Вычисление с заданной точностью #8
ок, тогда то, что я написал, можно поставить ниже, для наглядности)
VAndal_
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 9
24.01.2010, 13:59     Вычисление с заданной точностью #9
а весь код у кого есть?

Добавлено через 29 минут
и что за fabs он нигде не задан
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.01.2010, 14:36     Вычисление с заданной точностью #10
Цитата Сообщение от VAndal_ Посмотреть сообщение
и что за fabs он нигде не задан
эта функция описана в подключенной библиотеке math.h
fabs() - это функция вычисления модуля вещественного числа
VAndal_
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 9
24.01.2010, 18:35     Вычисление с заданной точностью #11
а у кого есть код проги с функциями ввода чисел изначальных и эхо-контролем?

Добавлено через 1 минуту
как запихнуть ввод чисел и проверку условия нахождения в последовательности y1,y2....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2010, 19:08     Вычисление с заданной точностью
Еще ссылки по теме:

Вычисление суммы ряда с заданной точностью C++
Вычисление фундаментальных констант с любой заданной точностью C++
Вычисление суммы ряда с заданной точностью C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.01.2010, 19:08     Вычисление с заданной точностью #12
VAndal_, создайте лучше новую тему. Опишите там все подробно что Вас интересует. В старые темы меньше заглядывают.
Yandex
Объявления
24.01.2010, 19:08     Вычисление с заданной точностью
Ответ Создать тему
Опции темы

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