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

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

Войти
Регистрация
Восстановить пароль
 
 
ScaleS
46 / 46 / 0
Регистрация: 06.12.2009
Сообщений: 68
#1

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

07.12.2009, 00:56. Просмотров 57758. Ответов 44

Задачи решенные тремя разными способами

Метод итераций
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
#include <conio.h>
#include <math.h>
#include <iostream.h>
#define pi 3.14
double f(double x) {
 
    return   x*x-(cos(pi*x));
}
 
double fi(double x, double L) {
 
    return  x+L*f(x);
}
 
 
int main() {
    int n=0;
    double x,y,c,b,L=-0.35,eps;
    cout<<"x="; cin>>x;
    cout<<"eps="; cin>>eps;
    do {
        y=fi(x,L);
        b=fabs(x-y);
        x=y;
        n+=1;
    }
    while (b>=eps);
        cout<<"c="<<x<<"\n";
        cout<<"n="<<n<<"\n";
        getch();
    return 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
34
35
36
37
38
#include <conio.h>
#include <math.h>
#include <iostream.h>
#define pi 3.14
 
double f(double x) {
 
    return   x*x-(cos(pi*x));
}
 
double f1(double x) {
 
    return   2*x+(1/x);
}
 
double f2(double x) {
 
    return   2+(-1/(x*x));
}
 
int main() {
    int n=0;
    double a,b,c,eps;
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"eps="; cin>>eps;
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
        getch();
    return 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
#include <conio.h>
#include <math.h>
#include <iostream.h>
#define pi 3.14
 
double f(double x) {
 
    return   x*x-(cos(pi*x));
}
int main() {
    int n=0;
    double a,b,c,eps;
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"eps="; cin>>eps;
    do {
        c=(a+b)/2;
        if (f(c)*f(a)<=0) b=c;
        else a=c;
 
        n+=1;
 
    }
    while (fabs(a-b)>=eps);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
        getch();
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2009, 00:56     Нахождение корней уравнения
Посмотрите здесь:

Нахождение корней уравнения - C++
Программа находит все корни уравнения и записывает в динамический массив. #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt;...

Нахождение корней уравнения - C++
Помогите написать программу по выводу корней из уравнения: f(x)=4\ast \sin \left(x \right)^4+2\ast \cos \left(x \right)^3+2 &quot;Шапку&quot; я...

Нахождение корней квадратного уравнения С++ - C++
Как найти корни квадратного уравнения С++?Задаются ведь значения x.y.z,а на выходе выводится значение корней. С++.Новичок.Буду...

Нахождение корней квадратного уравнения - C++
Здравствуйте все кто читает эти строки! Большой привет вам из раздела Delphi! Моему другу появилось необходимость написать прогу на...

Нахождение корней квадратного уравнения - C++
Здравствуйте , показывает ошибку в этих строчках,ругается на функции sqrt и pow объясните почему именно, заранее спасибо z =...

Нахождение корней уравнения методом обратного интерполирования - C++
Pomogite pojaluista napisat na C++ . . . zARANEE sPASIBO :)))

Нахождение корней уравнения методом обратного интерполирования - C++
Помощь нужна! кто можеть помогите

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SakinT
1 / 1 / 0
Регистрация: 02.04.2014
Сообщений: 92
13.01.2015, 19:24     Нахождение корней уравнения #41
Отыскать все корни нелинейного уравнения f(x) = 0 с точностью до 10-3.


как методом итерации и методом половинного деления решить эти уравнения?: x^3-3x^2+6x-5 = 0

3x+4x^3-12x^2-5=0

и показать отделение корней, т.е. найти интервал (a, b), на концах которого знаки f(x) разные.

Добавлено через 14 минут
Отыскать все корни нелинейного уравнения f(x) = 0 с точностью до 10-3.
10^-3 *(исправление)
rufus777
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 10
09.12.2015, 05:32     Нахождение корней уравнения #42
Выше был вопрос, про метод итераций для системы уравнений х) Такая же проблема и у меня, посмотреть хотя бы образец как выглядит это х) Если не трудно, помогите х) Спасибо)
Alex31115
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 41
04.01.2016, 07:47     Нахождение корней уравнения #43
Цитата Сообщение от ScaleS Посмотреть сообщение
double x,y,c,b,L=-0.35,eps;
А почему мы берем
C++ (Qt)
1
L=-0.35
? Как вообще оно выбирается? В методе итераций же вроде из уравнения http://www.cyberforum.ru/cgi-bin/latex.cgi?y(x)=0 получают уравнение http://www.cyberforum.ru/cgi-bin/latex.cgi?x=z(x) и по этому http://www.cyberforum.ru/cgi-bin/latex.cgi?x
смотрят что-то.
silencerus
0 / 0 / 0
Регистрация: 02.12.2016
Сообщений: 11
03.12.2016, 20:40     Нахождение корней уравнения #44
Здравствуйте.
Интересует код по золотому сечению представленному тут. Написано, что код для нахождения корней уравнения, но ищется минимум(или максимум), а ведь это разные задачи. Может кто-нибудь предоставить код метода золотого сечения для нахождения корней уравнения?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2017, 18:14     Нахождение корней уравнения
Еще ссылки по теме:

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

Нужен исходник с++(Нахождение корней уравнения методом обратного интерполирования) - C++
Помогите пожалуйста найти данный исходник...

Нахождение корней НУ в С++ - C++
Входными данными являются: 1. Диапазон поиска корней, т.е. минимальное и максимальное и значения х (например: от -1000 до 1000); 2....

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

Нахождение корней полинома n-ой степени - C++
Помогите пожалуйста с написанием алгоритма для нахождения корней полинома n-ой степени. Может поможет кому- название алгоритмов для...


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

Или воспользуйтесь поиском по форуму:
andywhitedsgn17
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 6
23.05.2017, 18:14     Нахождение корней уравнения #45
L=-0.35, тоже интересно почему так
Yandex
Объявления
23.05.2017, 18:14     Нахождение корней уравнения
Ответ Создать тему
Опции темы

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