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

Решение методом простых итераций - пояснить код

11.05.2015, 21:16. Показов 981. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите - не могу разобраться в программе, конкретно не пойму как реализован метод, начиная с блока (maxDi:=-1000 и следующий, к примеру... Может кто-нибудь пояснить как решение идет в этих двух блоках? Почему берется -1000 и т.д...
Заранее спасибо...


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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
program iter;
uses CRT;
var i,j,n,k,V:integer;
M:longint;
A,B:array [1..24,1..24] of double;
E,S,Cc,maxDi,C,Mm: double;
Xx,X,Ba,Bd: array [1..24] of double;
z:char;
 
procedure Matrln;
begin 
for var i:=1 to n do
for var j:=1 to n do
read(A[i,j]);
end;
 
procedure Vectln;
begin
for var i:=1 to n do
read(Ba[i]);
end;
 
BEGIN
ClrScr;
Repeat
write('Vvedite nomer variant V=');
readln(V);
if V=0 then 
writeln('------------Testoviy primer----------')
else
writeln('------------Variant',V,'----------');
writeln('------------VVOD ISHODNIX DANNIX :----------');
write('Vvedite tochnost vichisleniu, E=');
readln(E);
write('Vvedite razmernost sistemi, N=');
readln(N);
write('Vvodite postrochno matrix A sistemi');
Matrln;
write('Vvodite vector stolbec B sistemi');
Vectln;
 
maxDi:=-1000;
for i:=1 to n do begin
B[i,i]:=0;
for j:=1 to n do
if j<>i then B[i,j]:=-(A[i,j]/A[i,j]);
Bd[i]:=Ba[i]/A[i,i];
if Bd[i]>maxDi then maxDi:=Bd[i]
end;
writeln('maxDi=',maxDi:8:4);
 
C:=0;
for i:=1 to n do begin
Xx[i]:=Bd[i];
S:=0;
for j:=1 to n do
S:=S+abs(B[i,j]);
if C<=S then C:=S;
end;
writeln('C=',C:6:4);
 
if C<1 then begin
 Mm:=abs((1/ln(C))*(ln(maxDi)-ln(E*(1-C)))-1);
 M:=Round(Mm);
 if Frac(Mm)<0.5 then M:=M+1;
 writeln('Kolichestvo iterachiy M=',M:3);
  
 for k:=1 to M do begin
 for i:=1 to n do begin;
 Cc:=0; 
 for j:=1 to n do
 Cc:=Cc+B[i,j]*Xx[j];
 X[i]:=Bd[i]+Cc;
 end;
 for i:=1 to n do Xx[i]:=X[i];
 end;
  
 write('X= [');
 for i:=1 to n do write(X[i]:8:4);
 writeln(']');
 end
 else writeln('Yslovie shodimosti ne vipoln9ets9');
 write('Bydete prodolshat vichisleniy?(Y/N) Y');
 z:=ReadKey;
 writeln(z);
 until (z='N') or(z='n');
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2015, 21:16
Ответы с готовыми решениями:

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

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

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

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

1
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
12.05.2015, 07:07 2
Цитата Сообщение от snevar Посмотреть сообщение
Почему берется -1000
Да просто любое число заведомо меньше чем возможный максимум, например -1000000
0
12.05.2015, 07:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2015, 07:07
Помогаю со студенческими работами здесь

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

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

Решить уравнение x-cos(x)=0 методом простых итераций
Помогите пожалуйста решить уравнение: x-cos(x)=0 методом простых итерации на паскале, вычислить...

Нахождение корней уравнения методом простых итераций
Исходное уравнение : 3*x-14+exp(x)-exp(-x) = 0 Интервал,где находится корень : Решил...


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

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

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