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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 126, средняя оценка - 4.65
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
#1

Решение уравнений методом хорд на C++ - C++

20.02.2011, 18:20. Просмотров 19315. Ответов 7
Метки нет (Все метки)

Здравствуйте. Столкнулся с проблемой, решения уравнения методом хорд, с программированием все хорошо, и с матетематикой не плохо, только вот не могу понять алгоритм решения, один хороший пример и я бы разобрался.
Помогите пожалуйста решить уравнение вида aX^3+bX^2+cX+d=0,
буду очень признателен, можно без комментариев.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 18:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение уравнений методом хорд на C++ (C++):

Решение уравнений методом хорд - C++
Здравствуйте. Столкнулся с проблемой, решения уравнения методом хорд, с программированием все хорошо, и с матетематикой не плохо, только...

Решение уравнения методом хорд и касательных - C++
Комбінований метод хорд та дотичних x належить Перевожу. Решение уравнения комбинированным методом хорд и касательных. х...

Решение уравнений методом Гаусса - C++
Был создан двухмерный динамический пассив, где указываем кол-во строк и столбцов, а затем записываем значение каждого числа всех строк...

Решение системы уравнений методом Гаусса - C++
Всем доброго времени суток. Нужно написать программу для решения СЛАУ методом Гаусса. #include <stdio.h> #include <stdlib.h> #define...

Решение линейных уравнений методом Гаусса - C++
Доброе утро! Вы могли бы помочь мне решить вариант №29

Решение линейных уравнений методом Гаусса - C++
Всем привет. Поставлена задача создать программу, способную решать линейные уравнения методом Гаусса. А я собственно в С++ - дуб...

7
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
20.02.2011, 21:11 #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
25
26
27
#include <iostream>
#include <cmath>
 
double func(double x)
{
    return pow(x, 3) - 2 * pow(x, 2) - 6 * x - 1;
}
 
double find(double infinum, double supremum, double epsilon)
{
    while (fabs(supremum - infinum) > epsilon)
    {
        infinum = supremum - (supremum - infinum) * func(supremum) / (func(
                supremum) - func(infinum));
        supremum = infinum - (infinum - supremum) * func(infinum) / (func(
                infinum) - func(supremum));
    }
 
    return supremum;
}
 
int main()
{
    double a = -5, b = 5;
    std::cout << find(a, b, 0.0001) << std::endl;
    return 0;
}
5
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
21.02.2011, 05:24  [ТС] #3
Огромное спасибо!!!
0
olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
21.02.2011, 15:44 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <cmath>
#include <locale.h>
using namespace std;
double f(double x)
{
return pow(x,3)-0.2*pow(x,2)+0.2*x-1.2;
}
 
double findRoot(double a, double b, double e)
{
while(fabs(f(b)) > e)
{
a = b - ((b - a) * f(b))/(f(b) - f(a));
b = a - ((a - b) * f(a))/(f(a) - f(b));
}
return b;
}
int main()
{
setlocale(LC_ALL,"Russian");
double a, b, e;
a=0.5; b=1.5; e=0.0001;
cout<<"Корень уравнения x="<<findRoot(a, b, e)<<endl;
}
3
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
21.02.2011, 21:00 #5
olleg90, вы перепутали метод хорд с методом касательных. У вас как раз пример решения методом касательных
0
olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
23.02.2011, 17:34 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
M128K145,да нет= )) вот метод касательных или как его еще называют метод Ньютона
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
 #include <iostream>
#include <cstdlib>
#include <cmath>
 
using namespace std;
 
double f(double x) { return cos(x)-x+1; } //Функция, нули которой ищем
double df(double x) { return -sin(x)-1; } //Её производная
 
int main() {
 double tmp,x,eps;
 int N=0;
 
 cout<<"eps=";
 cin>>eps;   //Точность
 cout<<"x0=";
 cin>>x;     //Начальное приближение
 tmp=x+2*eps;
    while(fabs(x-tmp)>eps) { //Выбран останов |x[n]-x[n+1]|<eps
     tmp=x;
     x=x-f(x)/df(x);
     N++;
   }
   cout.setf(ios::scientific);
cout<<endl<<endl<<"x="<<x<<endl<<"N="<<N<<endl;
cin>>N;
return 0;
}
3
Den190312
07.05.2013, 23:12 #7
огромное спасибо за подсказку полезную, но возможно задать вопрос, здесь что дает N? итерации? т.е. начиная с 0 и до какой-то определенной, а также, что такое tmp=x+2*eps - во всех алгортимах умалчивается предназначение, а также вопрос, где мы пишем double f(double x) { return 4*x-16/pow(x,2); } - здесь производная или просто функция изначальна? а для следующего мы должныиспользовать вторую производную..
7макс7
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 14
08.05.2017, 09:30 #8
скажите пожалуйста а как найти интервалы а;b если корней несколько?
0
08.05.2017, 09:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2017, 09:30
Привет! Вот еще темы с ответами:

Решение нелинейных уравнений методом итераций - C++
Нашел на форуме такой пример решения уравнения методом итераций: #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;iostream.h&gt; ...

Решение системы уравнений методом Гауса - C++
Вот, ради интереса попробовал написать программу (С++). Сейчас она работает, но выполняет лишь первый шаг. Нужно чтобы программа выполняла...

Решение системы дифференциальных уравнений методом Эйлера - C++
В интернете нашел похожий код, но для 1 уравнения, может кто помочь сделать для 2? Тоесть для системы #include &quot;stdafx.h&quot; ...

Решение системы линейных уравнений методом Гаусса - C++
необходимо решить данную задачу в visual studio c++, если можно с комментариями, в консольном режиме Реализуйте функцию решения...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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