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

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

Войти
Регистрация
Восстановить пароль
 
Kolek000
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 112
#1

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

12.03.2014, 17:12. Просмотров 761. Ответов 9
Метки нет (Все метки)

Нужно две программы , которые решают данное уравнение x^3+3x^2+6x-1=0 двумя способами:
1.Методом хорд
2.Методом простой итерации
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 17:15     Решение нелинейных уравнений двумя методами #2
Для запуска методов нужен диапазон поиска - локализация корня. Условиями не задано?
Kolek000
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 112
12.03.2014, 17:21  [ТС]     Решение нелинейных уравнений двумя методами #3
не задано
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 17:32     Решение нелинейных уравнений двумя методами #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double f(double x)
{return x*x*x+3*x*x+6*x-1;}
 
double a=0,
b=10,
x;
 
do
{
 x = a-(f(a)*(b-a)/(f(b)-f(a));
 if(f(x)*f(a)<0) b=x; else a=x;
}while(f(x)>0.001)
 
cout<<x<<f(x);
Метод хорд: a и b - точки, в которых ф-ция имеет разные знаки (или найти вручную или искать циклом), 0,001 - точность расчета

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double f(double x)
{return x*x*x+3*x*x+6*x-1;}
 
 
double lam(double x)
{return 3*x*x+6*x+6;} //производная f
 
double x=10;
 
do
{
 x = x-f(x)/lam(x);
}while(f(x)>0.001)
 
cout<<x<<f(x);
метод итерации 10 - стартовая точка, 0,001 - точность
Kolek000
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 112
12.03.2014, 17:36  [ТС]     Решение нелинейных уравнений двумя методами #5
Большое спасибо ! А можно еще подписать , что значит каждая из строчек , чтобы мне было понятно?!
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 17:38     Решение нелинейных уравнений двумя методами #6
описания методов посмотри в Вики или на спец сайтах. Програмы их реализуют "тупо в лоб". По каким строчкам вопрос - задай конкретно
Kolek000
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 112
13.03.2014, 10:28  [ТС]     Решение нелинейных уравнений двумя методами #7
Большое спасибо!

Добавлено через 16 часов 49 минут
Программы не компилируются почему то?!
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
13.03.2014, 17:37     Решение нелинейных уравнений двумя методами #8
Так это не совсем программы - заготовки. Надо добавить инклуд, маин
Kolek000
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 112
13.03.2014, 17:59  [ТС]     Решение нелинейных уравнений двумя методами #9
добавьте пожалуйста ,чтобы все как надо было, а то я как то не очень пока что понимаю в этом языке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2014, 18:15     Решение нелинейных уравнений двумя методами
Еще ссылки по теме:
C++ Решение нелинейных уравнений и систем
C++ Решение системы из четырех нелинейных уравнений c++
Решение нелинейных уравнений методом итераций C++
Решение нелинейных уравнений. Метод половинного деления C++
C++ Решение системы нелинейных уравнений методом Ньютона (С/С++)

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

Или воспользуйтесь поиском по форуму:
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
13.03.2014, 18:15     Решение нелинейных уравнений двумя методами #10
Вообще-то, учиться надо. Форум - это помощник, но не решебник домашних заданий

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
 
double f(double x)
{return x*x*x+3*x*x+6*x-1;}
 
 
double lam(double x)
{return 3*x*x+6*x+6;} //производная f
 
main()
{
double x=10;
 
do
{
 x = x-f(x)/lam(x);
}while(f(x)>0.001)
 
cout<<x<<"  "<<f(x);
}
Yandex
Объявления
13.03.2014, 18:15     Решение нелинейных уравнений двумя методами
Ответ Создать тему
Опции темы

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