1 / 1 / 0
Регистрация: 25.09.2016
Сообщений: 160
1

Нахождение корней уравнения методом простых итераций

26.02.2018, 21:41. Показов 3265. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Исходное уравнение :

3*x-14+exp(x)-exp(-x) = 0

Интервал,где находится корень : [1;3]

Решил методом половинного деления

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
29
30
program pol;
 var
 a,b,eps,x,y,z:real;
 function F( x:real):real;
  Begin
    F:= 3*x-14+exp(x)-exp(-x)
  End;
Begin
 writeln('Введите границы интервала и погрешность');
 read(a,b,eps);
 writeln('В интервале: ' ,a:6:2, ',',b:6:2);
 writeln('С погрешностью: ', eps:9:6);
 y:=F(a); {Вычисление значения функции в точке а}
  repeat
  x:=(a+b)/2; {Вычисление координаты середины отрезка}
  z:=F(x); {и нахождение значения функции в этой точке}
  if y*z < 0 {определяем в каком интервале находится корень}
  then
   b:=x {задаём новую границу интервала}
  else
   begin
    a:=x; {задаём новую границу интервала}
    y:=z
   end;
   writeln('Граница a: ',a:2:6, ' Граница b: ',b:2:6,' Найденный корень:',x:2:6);
  until b -a<=eps; {цикл продолжится до того момента,если величина полученного 
  интервала будет меньше заданной погрешности}
  writeln('Корень:',x:10:6, ' f(x) =', z:2:6);
  writeln('Проверка при подстановке x в уравнение:',3*x-14+exp(x)-exp(-x):2:6);
End.
В результате чего получил корень,равный ~2.06

Решить же методом простых итераций почему-то не получится,в чем ошибка?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program iter;
 var
 eps,x0,x1,x2 : real;
Begin
Writeln('Введите начальное приближение и погрешность');
Readln(x0,eps);
Writeln('Погрешность: ',eps);
Writeln('начальное приближение: ',x0);
x1:=x0;
repeat
 x2:=x1;
 x1:=(14-exp(x2)+exp(-x2))/3;
until abs(x1-x2) < eps;
 writeln('корень: ', x1);
 Readln;
End.
Добавлено через 3 минуты
И какое значение брать в качестве начального приближения ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2018, 21:41
Ответы с готовыми решениями:

Нахождение корней уравнения методом итераций и методом половинного деления
Прошу вас помогите пожалуйста решить задачку по теме &quot; Нахождение корней уравнения &quot; двумя...

Решение нелинейного уравнения методом простых итераций
Здравствуйте оч нужно составить программу для решения нелинейного уравнения методом простых...

Вычислить действительный корень уравнения методом простых итераций
помогите пожалуста сделать задачку) &quot;Графически или аналитически отделить любой действительный...

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

1
5068 / 2639 / 2349
Регистрация: 10.12.2014
Сообщений: 10,007
27.02.2018, 07:30 2
https://ru.wikipedia.org/wiki/... 0%B8%D0%B8

В вашем случае φ(x) = (14-exp(x)+exp(-x))/3.
Что даёт производную φ'(x) = exp(-x)-exp(x), которая ни чуть не улучшает её вид и условие сходимости рушит решение.

Лучше применить метод Ньютона.
Тогда всё замечтательно получается!
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
29
30
31
function f0(x : Real) : Real;
begin
  f0 := 3*x-14+exp(x)-exp(-x);
end;
 
function f(x : Real) : Real;
begin
  f := f0(x) / (1 +exp(x)-exp(-x));
end;
 
const
  De = 10;
  Eps = 0.000000001;
  X0 = 1;
  
var
  X : Real;
  Step : Integer;
  
begin
  X := X0;
  WriteLn('Начальное значение: ', X :0:De);
  Step := 0;
  repeat
    X := X - f(X);
    Inc(Step);
    WriteLn('Шаг ', Step, ' - значение: ', X :0:De);
  until Abs(f(X)) < Eps;
  WriteLn('Корень = ', X :0:De);
  WriteLn('Проверка: ', f0(X) :0:De);
end.
0
27.02.2018, 07:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2018, 07:30
Помогаю со студенческими работами здесь

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

СЛАУ методом простых итераций
помогите пожалуйста решить слау методом простых итераций, исходник. a:=12.5; a:=1.4; a:=1.4;...

Вычислить корень методом простых итераций.
помогите пожалуста сделать задачку) &quot;Графически или аналитически отделить любой действительный...

Решение нелинейных уравнений методом простых итераций
Необходимо решить нелинейное уравнение вида \sqrt{1-0.4x^2}-\arcsin x=0, отрезок содержащий корень...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru