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

На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3) - C++

Восстановить пароль Регистрация
 
Kochulab
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 32
04.03.2012, 00:20     На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3) #1
На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1;
в которых есть действительные корни функции b = xtgx-e ^ (x-3)
Вычислить количество таких промежутков
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 00:20     На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3)
Посмотрите здесь:

найти действительные корни квадратного уравнения C++
C++ Вычислить 18 значений функции ax^2+bx+c на отрезке [e,f], сохранить их в массиве Y и определить, имеет ли уравнение ax^2+bx+c=0 на отрезке [e,f] по крайней мере хотя бы один корень.
Исправьте код, выдает ошибку (заданы коэффициенты квадратного уравнения. Найти его действительные корни, если они существуют.) C++
Вычислить m значений функции f(x) на отрезке [a, b]. Вычисление величины f(x) оформить в виде функции C++
C++ Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikola-BLR
42 / 42 / 3
Регистрация: 27.12.2011
Сообщений: 54
04.03.2012, 02:34     На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3) #2
Если значение функции изменило знак на каком-то отрезке (начало отрезка x, конец отрезка x+h), значит пересекли ось абсцисс, т.е. там есть корень.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
#define exp 2.718281828
 
int main()
{
    float x=-4, h=0.1;
    int rootsNumber=0;
    do
    {
        if ((x*tan(x)-pow(exp,x-3)>0 && (x+h)*tan(x+h)-pow(exp,x+h-3)<0)||
            (x*tan(x)-pow(exp,x-3)<0 && (x+h)*tan(x+h)-pow(exp,x+h-3)>0)) rootsNumber++;
        x+=h;
    }while (x<4);
    std::cout << "Number of roots: " << rootsNumber << std::endl;
    return 0;
}
Kochulab
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 32
04.03.2012, 11:09  [ТС]     На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3) #3
Цитата Сообщение от Mikola-BLR Посмотреть сообщение
Если значение функции изменило знак на каком-то отрезке (начало отрезка x, конец отрезка x+h), значит пересекли ось абсцисс, т.е. там есть корень.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
#define exp 2.718281828
 
int main()
{
    float x=-4, h=0.1;
    int rootsNumber=0;
    do
    {
        if ((x*tan(x)-pow(exp,x-3)>0 && (x+h)*tan(x+h)-pow(exp,x+h-3)<0)||
            (x*tan(x)-pow(exp,x-3)<0 && (x+h)*tan(x+h)-pow(exp,x+h-3)>0)) rootsNumber++;
        x+=h;
    }while (x<4);
    std::cout << "Number of roots: " << rootsNumber << std::endl;
    return 0;
}
А можете ли Вы написать описание в комментариях что к чему а то я чуть не понимаю(
Mikola-BLR
42 / 42 / 3
Регистрация: 27.12.2011
Сообщений: 54
04.03.2012, 15:08     На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3) #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>//для математических функций tan() - тангенс, pow(x,y)- возведение x в степень y
#define exp 2.718281828//везде, где встретится слово exp, будет подставлено число 2.71...
 
int main()
{
    float x=-4, h=0.1;//начало отрезка -4 и шаг 0.1
    int rootsNumber=0;//количество корней
    do
    {/*если значение функции было больше 0, а стало меньше
       либо если было меньше нуля, а стало больше,
       то на данном отрезке есть корень
       rootsNumber++ число корней увеличиваем на 1*/
        if ((x*tan(x)-pow(exp,x-3)>0 && (x+h)*tan(x+h)-pow(exp,x+h-3)<0)||
            (x*tan(x)-pow(exp,x-3)<0 && (x+h)*tan(x+h)-pow(exp,x+h-3)>0)) rootsNumber++;
        x+=h;//переходим к следующему отрезку на шаг h
    }while (x<4);//пока не достигнем конца отрезка x=4
    std::cout << "Number of roots: " << rootsNumber << std::endl;//и выводим количество корней
    return 0;
}
Yandex
Объявления
04.03.2012, 15:08     На отрезке xє[-4; 4] выделить промежутки длиной h = 0.1, в которых есть действительные корни функции b = xtgx-e ^ (x-3)
Ответ Создать тему
Опции темы

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