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

Нахождение корней уравнения - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
p0zitiff
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 68
26.09.2011, 11:09     Нахождение корней уравнения #1
Помогите написать программу по выводу корней из уравнения:
http://www.cyberforum.ru/cgi-bin/latex.cgi?f(x)=4\ast \sin \left(x \right)^4+2\ast \cos \left(x \right)^3+2
"Шапку" я уже написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 #include <math.h>
 #include <conio.h>
 main()
 {
 float a,b,,n,x,dx,,f,f1;
 printf("a=");
 scanf("%f",&a);
 printf("b=");
 scanf("%f",&b);
 printf("n=");
 scanf("%f",&n);
 dx=(b-a)/n
 for(x=a,x<=b-dx,x=+dx);
 {
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.09.2011, 14:19     Нахождение корней уравнения #2
Цитата Сообщение от p0zitiff Посмотреть сообщение
Помогите написать программу по выводу корней из уравнения:
по шапке больше похоже на вычисление таблицы значений функции.
-=ЮрА=-
Заблокирован
Автор FAQ
26.09.2011, 14:27     Нахождение корней уравнения #3
p0zitiff, преобразуйте ваше уравнение к виду f(x) = 0 и смело решайте так как указал здесь Метод простой итерации (только не забудте выражение в теле double f(double x) поменять)
p0zitiff
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 68
26.09.2011, 21:23  [ТС]     Нахождение корней уравнения #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
p0zitiff, преобразуйте ваше уравнение к виду f(x) = 0 и смело решайте так как указал здесь Метод простой итерации (только не забудте выражение в теле double f(double x) поменять)
Да так то так,но я печатаю на Borland C++ 5.02,он не понимает таких сложных операторов...выдает 36 ошибок....можно сделать с "облегченными" операторами...
-=ЮрА=-
Заблокирован
Автор FAQ
26.09.2011, 21:29     Нахождение корней уравнения #5
p0zitiff, просто уберите using namespace std;
а также std:: а также хедеры запишите в старом стиле
p0zitiff
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 68
26.09.2011, 21:31  [ТС]     Нахождение корней уравнения #6
-=ЮрА=-,
Надо получить из формулы которая вверху на картинке корни которые указаны внизу нее те же x1 и x2:
Нахождение корней уравнения
-=ЮрА=-
Заблокирован
Автор FAQ
26.09.2011, 21:35     Нахождение корней уравнения #7
Вот подправил под билдер (правда там ещё + 1 хедер ctype.h)
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
#include <iostream.h>//i/o
#include <conio.h>   //getch
#include <ctype.h>   //toupper
#include <math.h>    //pow fabs
 
double f(double x)
{
    return pow(x,2.0) - 20*sin(x);
}
 
int main()
{
        double a,b,eps,x,dx;
        do
        {
                cout<<"Enter diapazone[a;b] of iterations\r\n";
                cout<<"a = ";cin>>a;
                cout<<"b = ";cin>>b;
                cout<<"Enter accuracy e ";cin>>eps;
                //Шаг определяем по точности вычислений
                //Погрешность f(x[i]) - f(x[i - 1]) < x[i] - x[i - 1] = h
                dx = (b - a)*(eps/10);//Мин шаг точность/10
                x = a;
                //Вычисления останавливаем когда добиваемся
                //требуемой точности вычислений eps < fabs(f(x))
                //или же достигаем конца промежутка
                while(eps < fabs(f(x)) && x <= b)
                        x += dx;
                if(b < x)
                        cout<<"[a;b] isn't contain roots\r\n";
                else
                {
                        cout<<"root      : "<<x<<"\r\n";
                        cout<<"acuracy e : "<<fabs(f(x))<<"\r\n";
                }
                cout<<"Press Y for new input\r\n";
        }
        while(toupper(getch()) == 'Y');
        return 0;
}
Миниатюры
Нахождение корней уравнения  
-=ЮрА=-
Заблокирован
Автор FAQ
26.09.2011, 21:39     Нахождение корней уравнения #8
PS:В моей программе f(x) другую формулу обсчитывает x^2 - 20*sin(x), но думаю перебить её под вашу труда не составит

Добавлено через 2 минуты
Учитывая ваш пост
Цитата Сообщение от p0zitiff Посмотреть сообщение
Надо получить из формулы которая вверху на картинке корни которые указаны внизу нее те же x1 и x2:
замена функции о которой говорил выглядит так
C
1
2
3
4
double f(double x)
{
        return 4*pow(sin(x),4) + 2*pow(cos(x),3) + 2;
}
p0zitiff
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 68
26.09.2011, 21:46  [ТС]     Нахождение корней уравнения #9
-=ЮрА=-, все идет...только можешь эти выводы слов типа "Enter diapazone of iterations" прописать по-русски,то есть типа "введите диапазоны или итераторы"
Я бы перевел,но с математическими названиями могу накосячить
p0zitiff
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 68
26.09.2011, 22:12  [ТС]     Нахождение корней уравнения #10
-=ЮрА=-, окей...только теперь надо как то убрать эту "accuracy e",и "Press Y for new input".
Чтобы было как на картинка толь без тех что я обвел желтым.
Нахождение корней уравнения
То есть появлялась строка:"Введите диапазоны [x1,x2]"
Потом:"x1=3"
Третья:"x2=9.3"
Четвертая:"корень:3.142"
И чтобы выводились сразу два корня:
Первый:3.142
Второй:9.425
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2011, 22:28     Нахождение корней уравнения
Еще ссылки по теме:

C++ нахождение корней квадратного уравнения
Нахождение корней уравнения C++
C++ Нахождение корней квадратного уравнения через дискриминант

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

Или воспользуйтесь поиском по форуму:
p0zitiff
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 68
26.09.2011, 22:28  [ТС]     Нахождение корней уравнения #11
Помогите написать программу на Borland C++ чтобы по вот этой формуле:
http://www.cyberforum.ru/cgi-bin/latex.cgi?f(x)=4\ast \sin \left(x \right)^4+2\ast \cos \left(x \right)^3+2
Программа использовала четыре разных метода(то есть четыре разных программы каждая их которых использует один из методов):
1.Алгоритм отделения корней
2.Метод простых итераций
3.Метод касаемых(Ньютона)
4.Любой метод на выбор
Yandex
Объявления
26.09.2011, 22:28     Нахождение корней уравнения
Ответ Создать тему
Опции темы

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