Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 14.11.2017
Сообщений: 50
1

Ища корень методом итераций выдает nan

13.10.2018, 17:12. Просмотров 259. Ответов 1
Метки нет (Все метки)

Мне надо найти корень уравнения методом итераций. Что на С++, что на Паскале результат выходит Not a number. Когда решаю с помощью этих прог пример задания, то всё более-менее сходится. А с моим задание выходит nan. Правда я не дописал начальный интервал изоляции корня, не пойму как его седлать, может в этом проблема? Если да, то было б не плохо узнать как добавить изоляцию.

Само уравнение:
(tan(1+x3))/(7-x)=7x4+7x3+0,3
начальная изоляция корня: [-0.3;0.01]

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
39
40
41
42
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
 
#define TESTPRINT
 
double Equation(double x) {
 
    return (tan(1+pow(x,3))/(7-x)-7*pow(x,4)-7*pow(x,3))-0.3;
 
}
 
 
int main() {
 
    const double eps = 0.01;
 
    double   x0, x, xNext;
    int      nIter;
 
    printf("x0 = ? "); scanf_s("%lg", &x0);
    x = x0;
    xNext = Equation(x);
    nIter = 1;
 
    while (fabs(xNext - x) > eps) {
        x = xNext;
        xNext = Equation(x);
        ++nIter;
#ifdef TESTPRINT
        printf("%.5g %.5g %d\n", x, xNext, nIter);
#endif
    }
 
    printf("The root %.5g has been reached to within %.5g after %d iterations.\n",
        xNext, eps, nIter);
    system("pause");
 
    return 0;
 
}
Pascal
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
var x0,x1,a,b,e:double; 
 iteraz:double; 
function fun(x:double):double; 
 begin 
 fun:=(((tan(1+x*x*x)/(7-x))-7*x*x*x*x-7*x*x*x)-0.3); 
 end; 
begin 
 clrscr; 
 writeln('Решение уравнения методом итераций '); 
writeln('-------------------------------------------'); 
writeln; 
 write('Введите x0='); 
 readln(x1); 
 write('Введите точность e='); 
 readln(e); 
 iteraz:=0; 
 repeat 
 iteraz:=iteraz+1; 
 x0:=x1; write(x1); 
 x1:=fun(x0); write(x1); writeln; 
 until (abs(x1-x0)<=e); 
  
 
 writeln('Вычисленное значение корня:',x1); 
 writeln('Число итераций:',iteraz); 
  
 readln; 
 end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2018, 17:12
Ответы с готовыми решениями:

Найти корень уравнения методом последовательных итераций.Второй корень вычисляет неверно
Задание:Написать программу для вычисления методом последовательных итераций уравнения x=Aexp(-x)....

Найти корень уравнения методом итераций
Нужно написать программу, которая будет находить корень уравнения x^3+2x^2+x-1=0 методом итераций....

Вычислить методом итераций корень уравнения
Вот сижу, ломаю голову, понимаю что самой это сделать не получится, а скоро сдавать, поэтому прошу...

Найти корень уравнения методом последовательных итераций
Задание:Написать программу для вычисления методом последовательных итераций уравнения x=Acos(x)....

1
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,739
13.10.2018, 17:33 2
1. уравнение надо свести к виду x=F(x)
2. Условие сходимость метода итераций:
модуль производной от F(x) меньше единицы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2018, 17:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Методом итераций вычислить корень уравнения вида f(x)=0
Методом итераций вычислить корень уравнения вида f(x)=0 расположенный на интервале , с абсолютной...

Ища корень методом итераций выдает nan
Мне надо найти корень уравнения методом итераций. Что на С++, что на Паскале результат выходит Not...

Найти количество итераций и корень уравнения методом простых итераций
Помогите с программкой. Ну совсем никак. Даже не представляю что надо писать (чайник в Си). если...

Найти корень уравнения методом итераций
Дано уравнение x+sqrt(x-1)+1 c точностью е = 0,05 нужно найти в excel на отрезке . Пробовал...

Методом итераций найти корень уравнения
Подскажите в чем проблема? точность 10^-3 область корня уравнение 0.6*3^x-2,3*x-3=0 ...

Найти корень уравнения методом итераций.
Дано уравнение f(x) = x4 –13x2 +36 – 1/x Найти корень уравнения f(х) = 0 методом итераций. ...


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

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

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