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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
kaleksandr94
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 2
02.02.2014, 16:09     Решение нелинейных уравнений методом итераций #1
Нашел на форуме такой пример решения уравнения методом итераций:
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++ Решение системы линейных уравнений методом простых итераций
C++ метод Ньютона для решения нелинейных уравнений: узнать количество итераций
C++ Решение нелинейных уравнений
C++ Решение нелинейных уравнений методом простой итерации
C++ Решение нелинейных уравнений методом простой итерации
C++ Решение системы из двух нелинейных уравнений методом Ньютона
C++ Решение системы нелинейных уравнений методом Ньютона (С/С++)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mf909
96 / 12 / 3
Регистрация: 10.01.2014
Сообщений: 29
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();
}
Yandex
Объявления
13.02.2014, 00:18     Решение нелинейных уравнений методом итераций
Ответ Создать тему
Опции темы

Текущее время: 01:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru