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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
#1

нахождение корня на интервале - C++

05.02.2010, 08:23. Просмотров 891. Ответов 9
Метки нет (Все метки)

дано x^2-4x-8,75. найти корень уравнения f(x)=0 на интервале (A,B) c точностью E. использовать метод хорд. где A=5,5 B=6,5 E=10^-4. Результат решения - "Корень уравнения X"

честно сказать в математике я не силен уже 4 года как)) тобиш забыл все, поэтому не понимаю что и как искать даже математически, не то что в программе))

но имеется исходник подобной задачи, суть которой состоит в том что нужно найти корень, на том же интервале, с точностью Е, которая вводится с клавиатуры вместе с интервалом. функция монотонна(что собственно, монотонно, я так и не вспомнил)) ) и непрерывна, где f(x)=x-sin(x)/cos(x), a<b, e>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
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float f(float fx)
{
return fx-sin(fx)-0.25;
}
void main()
{
float a,b,e,x,x1,x2;
printf("\n vvedite a,b,e");
scanf("%f%f%f",&a,&b,&e);
if(f(a)*f(b)>0)
printf("\n\n kornej net\n");
else
{
x1=a;
x2=b;
while(fabs(x2-x1)>e)
{
x=(x1+x2)/2;
if(f(x1)*f(x)>0)
x1=x;
else
x2=x;
}
printf("\n koren' uravneniya=%f\n f(x) v etoj to4ke=%f",x1,f(x1));
}
getch();
}
как выразить мою задачу я так и не понял

Добавлено через 3 минуты
забыл уточнить.... знак ^ - степень, например x^y, означает x в степени y

Добавлено через 12 часов 10 минут
никто не поможет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 08:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нахождение корня на интервале (C++):

Таблица значений квадратного корня на интервале [2;4] с шагом 0.1 - C++
Задали написать программу, которая выводит таблицу значений квадратного корня на интервале с шагом 0.1. В программировании вообще не...

Найти значение корня на заданном интервале с заданной точностью - C++
Программа не доходит до цикла функции, задание чтобы ввести начало диапозона, конец , шаг диапазона и этот диапазон прибавлялся к фунции y=...

Отыскание корня уравнения f(x)=0 на интервале (A,B) с точностью Е (метод хорд) - C++
Вот такая задача: Отыскание корня уравнения f(x)=0 на интервале (A,B) с точностью Е (решение с помощью метода хорд). Уравнение такое:...

Нахождение квадратного корня - C++
3 задание. Си знаю на самом простом уровне, написал код для решения задачи, но не совсем уверен в его правильности, потому прошу знатоков...

Нахождение корня уравнения - C++
Составить программу для вычисления

Нахождение квадратного корня - C++
Нужно написать функцию нахождения квадратного корня не используя cmath. Решил реализовать итерационную формулу Герона, при компилировании...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
05.02.2010, 10:13  [ТС] #2
нашел схему алгоритма нахождения корня методом хорд для какой точно формулы я так и не понял. но вот что она представляет из себя:
Миниатюры
нахождение корня на интервале  
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
05.02.2010, 10:21  [ТС] #3
еще вот
Миниатюры
нахождение корня на интервале  
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 10:22 #4
единственное чем могу помочь:
монотонная функция-функция, для которой:
для всех x,y; x>y f(x)>f(y)(или же f(x)<f(y), f(x)>=f(y),f(x)<=f(y))
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
05.02.2010, 14:12  [ТС] #5
чес сказать ниче все равно не понимаю ))

Добавлено через 3 часа 45 минут
никто не поможет?
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 17:40 #6
Цитата Сообщение от cibertronic Посмотреть сообщение
чес сказать ниче все равно не понимаю ))

Добавлено через 3 часа 45 минут
никто не поможет?
Короче если у тебя производная всегда одного знака-последовательность монотонная
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
05.02.2010, 19:49  [ТС] #7
ясно)) что ничего не ясно)
Dopler
3 / 3 / 1
Регистрация: 03.02.2010
Сообщений: 15
05.02.2010, 21:25 #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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
float F (float x)
{
    return x*x-4*x-8.75;
}
void main()
{
    float a,b,E,c,x,t;
    int n=0;
    float F2=2;//2я производная для выбора неподвижного отрезка
    cout<<"Vvedite tochnost: ";
    cin>>E;
    cout<<"\nVvedite otrezok [a,b]: ";
    cin>>a>>b;
    if(F(a)*F(b)>0)//проверка, что корень сушествует и единственный на данном интервале
           {
        cout<<"\nKorney net!";
                      _getch();
        exit(0);
           }
    if(F(a)*F2>0)//выбор неподвижной точки
    {
        c=a;
        x=b;
    }
    else
    {
        c=b;
        x=a;
    }
    do{
        t=x;//сохраняем предыдущее приближения для вычисления погрешности
        x=x-(F(x)*(x-c))/(F(x)-F(c));//формула для вычисления следующего приближения к корню
        n++;
        cout<<"\nPribligenie k kornu na "<<n<<" iteracii: "<<x;
    }while(fabs(x-t)>E);//проверка условия окончания процесса, как только погрешность стала <= точности, то заканчиваем процесс
    cout<<"\n\nKoren: "<<x;
    cout<<"\nZnachenie v korne: "<<F(x);
    cout<<"\nKolichestvo iteraciy: "<<n;
    _getch();
}
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
10.02.2010, 17:31  [ТС] #9
спаисбо огромное)только потом надо будет все ент переделать)) мы cin и cout не используем) впалит что не я делал сразу))

Добавлено через 3 минуты
да....как преподу проще сказать шо такое интерации....я так понял что это количество хорд, так?
Dopler
3 / 3 / 1
Регистрация: 03.02.2010
Сообщений: 15
11.02.2010, 21:54 #10
кол-во итераций - это за сколько шагов была достигнута требуемая точность, т.е. в данном случае кол-во хорд. cin и cout, я думаю, сам сделаешь (я просто не дружу с printf())
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2010, 21:54
Привет! Вот еще темы с ответами:

Нахождение корня уравнения - C++
Составить программу для вычисления действительных корней уравнения любым способом точность 10^-5 x^3+3x^2-9x+5=0

Нахождение корня методом хорд - C++
Помогите дописать программу, Билдер в 5-ой строке выдаёт синтаксическую ошибку: #include&lt;iostream.h&gt; #include&lt;conio.h&gt; ...

Нахождение корня в заданном отрезке - C++
Здравствуйте! Собственно, нужно найти корень нелинейного уравнения из заданного отрезка с точностью до eps=0.01, используя метод итераций. ...

Нахождение корня без sqrt() - C++
Здравствуйте. Ну как вы наверно поняли нужно написать собственную функцию нахождения корня. вот что я наваял: const double eps=0.0001;...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.02.2010, 21:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru