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

Решить уравнение с абсолютной точностью - C++

Восстановить пароль Регистрация
 
pushka
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 35
02.12.2010, 21:45     Решить уравнение с абсолютной точностью #1
помогите,пожалуйста,составить программу:
Используя метод итераций решить следующее уравнение:
5 sin Z = ( 1+ Z )/ 2
с абсолютной точностью ε = 10-3 , если начальное приближение корня Z0 = 1,75.

Добавлено через 5 часов 34 минуты
используя оператор while do
никто не поможет?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2010, 21:45     Решить уравнение с абсолютной точностью
Посмотрите здесь:

Решить уравнение C++
C++ Решить уравнение A*x^2+B*y^2=C
Решить уравнение C++
C++ Решить уравнение на С++
C++ Решить уравнение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
02.12.2010, 22:35     Решить уравнение с абсолютной точностью #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
#include <iostream>
#include <cmath>
 
double f(double x0)
{
    return (10 * sin(x0) - 1);
}
 
int main()
{
    double z = 0, z0 = 1.75;
    int i = 0;
    do
    {
        if(z)
            z0 = z;
        z = f(z0);
    } while(abs(z - z0) > 0.001);
    
    std::cout << "z = " << z <<  std::endl;
 
    system("Pause");
    return 0;
}
pushka
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 35
02.12.2010, 22:48  [ТС]     Решить уравнение с абсолютной точностью #3
спасибо огромное!
если честно плохо понимаю с ++,я так понимаю в с будет почти так же...
только не понимаю как эта формула здесь работает,не вижу не её ,не её преобразований,или я чего-то не понимаю!? 5 sin Z = ( 1+ Z )/ 2
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
02.12.2010, 22:55     Решить уравнение с абсолютной точностью #4
Цитата Сообщение от pushka Посмотреть сообщение
5 sin Z = ( 1+ Z )/ 2
Из этого следует, что

C++
1
Z = 10 * sin(Z) - 1;
По этой формуле и вычисляется каждое последующее значение Z. Чтобы его получить в правую часть подставляется Z из предыдущего шага итерации, т.е. Z0; Длится всё это безобразие, пока разница Z - Z0 больше погрешности, с которой надо считать.
pushka
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 35
03.12.2010, 14:47  [ТС]     Решить уравнение с абсолютной точностью #5
о,спасибо,всё понятно!

Добавлено через 14 часов 38 минут
помогите,всё работает,но почему-то в ответе 0

Добавлено через 1 час 1 минуту
исправила,теперь не могу остановить поток цифр...
не подскажете как это сделать!?

Добавлено через 8 минут
что не так!?подскажите
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <math.h>
 
 
int main()
{
    float z = 0, z0 = 1.75;
    int i = 0;
    do
  {
 
        if(z)
            z0 = z;
        z=(10 * sin(z) - 1);
        printf ("\n budet=%f,z);
        
    } while(abs(z - z0) > 0.001);
       z=(10 * sin(z) - 1);
    
    printf ("\n itogo=%f,z);
 
  
    return 0;
}
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.12.2010, 14:53     Решить уравнение с абсолютной точностью #6
кавычку забыли в строке 14, поэтому цикл бесконечный
pushka
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 35
03.12.2010, 14:58  [ТС]     Решить уравнение с абсолютной точностью #7
нет,не забыла,просто на другом компе делаю
не понимаю получается миллион итереций,какой-то бред
ничего не понимаю

Добавлено через 1 минуту
а ещё что вам не нравится?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2010, 21:45     Решить уравнение с абсолютной точностью
Еще ссылки по теме:

Решить уравнение C++
C++ Решить уравнение
Решить уравнение C++

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

Или воспользуйтесь поиском по форуму:
sirnet
 Аватар для sirnet
13 / 13 / 2
Регистрация: 12.02.2010
Сообщений: 53
03.12.2010, 21:45     Решить уравнение с абсолютной точностью #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 <stdio.h>
#include <math.h>
 
int main(int argc, char **argv)
{
    float z = 0, z0 = 1.75;
    //int i = 0;
    do
  {
 
        if(z)
            z0 = z;
        z=(10 * sin(z) - 1);
        printf ("\n budet=%f",z);
        
    } while(abs(z - z0) > 0.001);
       z=(10 * sin(z) - 1);
    
    printf ("\n itogo=%f",z);
 
  
    return 0;
}
Добавлено через 1 минуту
то что выдал после запуска
Код
budet=-1.000000
 budet=-9.414710
 budet=-1.100677
 budet=-9.915145
 budet=3.709496
 budet=-6.378659
 budet=-1.953290
 budet=-10.277369
 budet=6.529882
 budet=1.442024
 budet=8.917203
 budet=3.860594
 budet=-7.586338
 budet=-10.643967
 budet=8.388203
 budet=7.606655
 itogo=8.695704
Yandex
Объявления
03.12.2010, 21:45     Решить уравнение с абсолютной точностью
Ответ Создать тему
Опции темы

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