Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 78, средняя оценка - 4.78
bambino
194 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
#1

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

01.03.2011, 17:28. Просмотров 13980. Ответов 5
Метки нет (Все метки)

Здраствуйте!
Передомной стоит задание решить уравнение(см. вложения, вариант 10) двумя методами:
1) Метод простых итераций
2) Метод хорд
Знаю что все эти методы давно реализованы и есть здесь, но сама проблема в том, что я не знаю куда в те коды вставлять данное уравнение.Если есть время, буду благодарен за помощь.
0
Миниатюры
Реализация алгоритмов решения нелинейных уравнений  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2011, 17:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Реализация алгоритмов решения нелинейных уравнений (C++):

Программная реализация алгоритмов решения нелинейных уравнений
Помогите пожалуйста с 9 вариантом.

Решения нелинейных уравнений (проверка)
Вообщем код у меня почти готов, но мне нужно еще сделать проверку уравнения с...

Метод хорд для решения системы нелинейных уравнений
Здравствуйте, задал вопрос по чисмету вот тут...

Метод Ньютона для решения системы нелинейных уравнений
Программа работает неверно. Пожалуйста, помогите найти ошибки. Спасибо. ...

Метод Ньютона для решения системы нелинейных уравнений
Здравствуйте! Нужно решить методом Ньютона систему уравнений с точностью...

Написать программу для решения системы нелинейных уравнений
Не могу сделать прогу на С++. Кто сделает - огромное спасибо....

5
bambino
194 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
01.03.2011, 20:16  [ТС] #2
Апну темку, если что.
0
IrineK
Заблокирован
02.03.2011, 02:23 #3
Лучший ответ Сообщение было отмечено как решение

Решение

Метод простых итераций

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include <math.h>
#include<conio.h>
using namespace std;
 
double fi(double x) 
{  return  (cosh(0.7*x)-9)/3.5;}
 
int main() {
        int n=0;
        double x=-2.0,y,b,eps=0.000001;
        do {
                y=fi(x);
                b=fabs(x-y);
                x=y;
                n++;
        }while (b>=eps && n<100);
                cout<<"Root x ="<<x<<"\n";
                cout<<"Iterations n= "<<n<<"\n";
        getch();
        return 0;
}
Дает Х = -1,96867 за n = 12 итераций.

Добавлено через 1 час 10 минут
Метод хорд

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
#include <iostream>
#include<conio.h>
#include <cmath>
using namespace std;
 
double f( double x ) 
{   return 3.5*x+9-cosh(0.7*x);}
 
double ddf( double x ) 
{   return -0.49*cosh(0.7*x);}
 
double choice (double left, double right)
{
    if(f(left)*ddf(left)>0) return left;
    if(f(right)*ddf(right)>0) return right;
}
 
int main() 
{
    int n=0;
    double a=-10.0,b=3.0, x, y, c, eps=0.00001;
    x = b;
    do {
        c = choice(a,b);        
        y= x - (f(x)*(x-c))/(f(x)-f(c));
                b=fabs(x-y);
                x=y;
                n+=1;
        }while (b>=eps);
                cout<<"Root x ="<<x<<"\n";
                cout<<"Iterations n="<<n<<"\n";
        getch();
        return 0;
}
Дает Х = -1,96853 за n = 150 итераций
3
Андрей213
0 / 0 / 2
Регистрация: 21.04.2014
Сообщений: 13
06.05.2014, 23:44 #4
Как найти все корни?
у квадратных уравнений их же два
0
tegauss
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
07.05.2014, 00:53 #5
Андрей213, эти итерационные алгоритмы нуждаются в некоем начальном приближении ответа, и сходятся они к ближайшему от него решению. Чтобы получить n корней, нужно n раз запустить алгоритм, каждый раз задавая нужное начальное приближение.
0
rina1
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 3
22.12.2014, 22:47 #6
Добавлено через 1 минуту
Цитата Сообщение от IrineK Посмотреть сообщение
double fi(double x)
{ *return *(cosh(0.7*x)-9)/3.5;}
в методе итераций как понять эту запись, соединили f1 и f2 ? как?
0
22.12.2014, 22:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2014, 22:47
Привет! Вот еще темы с решениями:

Метод Ньютона для решения нелинейных уравнений: узнать количество итераций
Задание: реализовать метод Ньютона для решения нелинейных уравнений, в итоге...

Исправить код метод Ньютона для решения систем нелинейных уравнений под нужное условие
Данный код для решения системы ax+tg(xy)=0; (y^2-b^2)+lnx=0 Перепишите...

Исследовать итерационный метод- метод касательных для решения нелинейных уравнений
прочитал много всего , но сам пример реализовать никак не могу , кто может...

Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии)
Здравствуйте. Помогите пожалуйста дописать программу. Вот что вымучал, но на...


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

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

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