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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
kaleksandr94
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 2
#1

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

02.02.2014, 16:09. Просмотров 2272. Ответов 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
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;
}
Отличный образец, все понятно и доступно, переделал под свой пример - все работает отлично. НО! Никак не могу понять, что это за переменная L=-0.35 и для чего она нужна? Подскажите, пожалуйста, кто шарит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2014, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение нелинейных уравнений методом итераций (C++):

Решение системы нелинейных уравнений методами Ньютона и простых итераций - C++
Написать программу решения системы нелинейных уравнений {y^3-x^2=1; ...

Решение нелинейных уравнений методом простой итерации - C++
Решение нелинейных уравнений методом простой итерации. Реализовать заданный алгоритм для уравнения , решив уравнение с заданной...

Решение нелинейных уравнений методом простой итерации - C++
Реализовать заданный алгоритм для уравнения x^3+x^2-1=0, решив уравнение с заданной пользователем точностью на с++. Помогите пожалуйста не...

Решение нелинейных уравнений методом деления пополам - C++
Окажите помощь в переписи программы с языка паскаль на с++ для курсовой работы. Программа решает нелинейные уравнения методом деления...

Решение системы нелинейных уравнений методом Ньютона (С/С++) - C++
Здравствуйте! Помогите пожалуйста написать программу :cry: У меня есть система из 2х уравнений (x+lnx)(y+lny)=1 ...

Решение нелинейных и трансцендентных уравнений методом Рыбакова - C++
помогите пожалуйста сделать прогу на Borland C++: решение нелинейных и трансцендентных уравнений методом Рыбакова заранее спасибо

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mf909
96 / 12 / 3
Регистрация: 10.01.2014
Сообщений: 30
04.02.2014, 01:03 #2
Это больше похоже не на метод итераций, а на метод касательных, где
http://www.cyberforum.ru/cgi-bin/latex.cgi?L=-\frac{1}{F'(x)}
http://www.toehelp.ru/theory/informat/lecture12.html
И то, что метод сходится к решению, ничего не значит. Он может сходиться, если значение производной в данной точке близко к взятой от фонаря константе L в программе. То есть он, скорее всего, будет с L=-0.35 сходиться для одних точек, но не сходиться для других.
kaleksandr94
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 2
13.02.2014, 00:18  [ТС] #3
Предыдущий пример я нашел на этом форуме под видом метода итераций, но меня он тоже смутил как-то
Кстати, у меня все-таки получилось решить именно методом итераций. Выложу здесь, вдруг кому-нить понадобится
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double fi(double x)
{
 return 2-log(x);
}
 
void main(void)
{
int a=0,b=3,n;
double x,x0,e=0.001;
clrscr();
printf("Vvedite nachalnoe pribligenie: ");
scanf("%lf",&x0);
while(fabs(a-x0)>e && fabs(b-x0)>e)
{
 x=fi(x0);
 if (fabs(x-x0)<e) break;
 else x0=x;
 n++;
}
printf("x=%lf \nkolichestvo iteraciy=%d",x,n);
getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2014, 00:18
Привет! Вот еще темы с ответами:

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

Методом половинного деления найти решение нелинейных уравнений - C++
Методом половинного деления найти решение следующих нелинейных

Решение нелинейных уравнений методом деления отрезков пополам - C++
Здравствуйте ! Пытаюсь решить задачку на тему Решение нелинейных уравнений Методом деления отрезков пополам.. написал код для...

Решение системы линейных уравнений методом простых итераций - C++
Здравствуйте! Нужна вот такая помощь, незнаю как написать такую программу.


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

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

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