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

Решение транцседентного уравнения! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему программа выдает ошибку при первом запуске, а дальше работает нормально? Код C http://www.cyberforum.ru/cpp-beginners/thread573127.html
Подскажите почему программа выдает ошибку при первом запуске, а дальше работает нормально? #include <iostream> #include <cstdlib> #include <string> using namespace std; int istrue(string); ...
C++ Структура проверка на ошибку Вот не знаю как реализовать не емко проверку на выход за диапазон, чтобы если вводишь букву или миллиард программа завершалась #include <iostream> using namespace std; const short A=5; const... http://www.cyberforum.ru/cpp-beginners/thread573123.html
C++ помогите с решением задания по С++
найти сумму элементов матрицы размещенных за периметром 1 2 3 А= 4 5 6 <--- матрица ок?) 6 7 8 если можно с комментариями что к чему, заранее спасибо
Написать программы C++
1)Написать программу для вывода дней недели 2)Написать сумму всех целых чисел больших -50 и меньших 200 которые кратны 5 и 8 и заканчиваются на 5 и 0
C++ Вычисление уравнения с шагом http://www.cyberforum.ru/cpp-beginners/thread573118.html
узнать у как функцию х за формулой У=16.7х + 9.2х^2 – 1.01x^3 для х ызменимого от 1.0 к 9.9 с шагом 0.1. входящие данные: диапазон изменения х (1.0 .. 9.9) шаг h= 0.1 выходящие данные: значение...
C++ Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7 задание:"найдите простые числа такие, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7" помогите пожалуйста, не знаю как сделать подробнее

Показать сообщение отдельно
Yanou
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 7

Решение транцседентного уравнения! - C++

13.05.2012, 16:15. Просмотров 232. Ответов 0
Метки (Все метки)

Здраствуй народ! Написал программу решения транц уравнения методом половинного деления. Например чтобы решить уравнение sin (x)=1 нужно сначала задать границы отрезка например а=0,b=pi/2 (1.57) и точность эпсилон e=0.0001. Так вот программа работает правильно, когда задаешь границы от нуля до пи пополам и какой нибудь точностью - ответ выдает правильный - 1.5657... а при задании грагиц например от 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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
double f(double x) // наша функция
{
double y=sin(x)-1;
return y;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"Rus"); // рус. яз
    double a,b,e,x;
     ifstream in("1.txt");
      in>>a>>b>>e; // считываем границы и точность
  do
          {
              x=(a+b)/2; // берем середину очередного отрезка
                if ((f(a)*f(x))>0) // Если значения функции в точках а и х одного знака 
                    a=x; // в качестве след отрезка берем правую половину
                else
                    b=x; // в качестве след отрезка берем левую половину
          }
  while (fabs(b-a)>2*e); // пока нужная точность не будет достигнута
    ofstream off("exit.txt"); // вывод в выходной файл exit.txt
       off<<"Решение уравнения: "<<x;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru