Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
4 / 4 / 1
Регистрация: 26.11.2009
Сообщений: 154
1

Решить уравнение методом итераций

12.12.2009, 23:41. Показов 660. Ответов 0
Метки нет (Все метки)

Задание:
решить уравнение f(x,g)=0 методом итераций, если f(x)=gcosx-(e^x)/2
c=1, d=2, m=10, Eps=0,001 промежуток [0;1]

программный код:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
program pr2;
uses crt;
var a,b,h,g,f1a,FI1a,k,c,x,x1,d,eps,Qmax,g_max,f1b,FI1b,eps1,FIx:real;
    m,i,z:integer;
begin
clrscr;
                {ввод значений переменных}
write('a=');
read(a);
write('b=');
read(b);
write('c=');
read(c);
write('d=');
read(d);
write('m=');
read(m);
write('eps=');
read(eps1);
clrscr;
                {работа с переменными}
 h:=(d-c)/m;
 
 g:=c; {g-первое значение параметра функции}
   for i:=1 to (m+1) do
    begin
        f1a:=-g*sin(a)-EXP(a)/2;
         if abs(Qmax)<abs(f1a) then
                                  Qmax:=abs(f1a);
        f1b:=-g*sin(b)-EXP(b)/2;
         if abs(Qmax)<abs(f1b) then
                                   Qmax:=abs(f1b);
 
             k:=round(Qmax/2);
               FI1a:=1+(g*sin(a)-EXP(a)/2)/2;
                  FI1b:=1+(g*sin(b)-EXP(b)/2)/2;
                           if abs(FI1a)<abs(FI1b) then
                                                      g_max:=abs(FI1b)
                                                        else
                                                          g_max:=abs(FI1a);
                     eps:=eps1*((1-g_max))/g_max;
                       z:=0;
                         x:=g_max;
                        repeat
                           FIx:=x-(g*cos(x)-EXP(x)/2)/2;
                           x1:=FIx;
                           z:=z+1;
                           writeln('x1=',x1:9:7);
                           writeln('Fi(x1)=',FIx:9:7);
                        until abs(FIx-x1)<=eps;
               {изменение параметра функции}
                g:=c+i*h;
    end;
    readkey;
end.
программа зацикливается, а без этой строки:
Pascal
1
g:=c+i*h;
прога работает, но не изменяются значения
и по моему, я что-то не то сделал.
можете помочь? и если вас не затруднит выложите скан-коды для построения таблицы
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2009, 23:41
Ответы с готовыми решениями:

Решить уравнение методом итераций
нужно было решить уравнение lnx-x+18=0 методом итераций и составить программу. всё сделала вроде,...

Решить уравнение методом итераций
Народ такая беда. Написал программу, а преподаватель говорит, что она считает неправильно. ВОТ...

Решить методом простых итераций x^4+5x^2-x+1=0
x^4+5x^2-x+1=0 {Метод Ньютона решения нелинейного уравнения} program Newton; uses crt; {модуль...

Решить задачу методом ньютона и итераций
Помогите пожалуйста с задачей. Нужно решить методом ньютона и интераций уравнение...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2009, 23:41

Уравнение методом итераций
Написал программу, а она считает совсем немного неправильно. ВОТ ЗАДАНИЕ: Уравнение:...

решить нелинейное уравнение F(x)=0 методом деления отрезка пополам и методом Ньютона
Задача звучит так: решить нелинейное уравнение F(x)=0 методом деления отрезка пополам и методом...

Решить уравнение методом касательных
Решить уравнение In (x)-x+1.8=0 с точностью е на отрезке методом касательных.

Решить уравнение методом Ньютона (касательных)
Надо решить уравнение методом Ньютона (касательных) на языке Паскаль ур-е: f(x)=2*exp(x)-5*x-2...


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

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

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