Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 61
1

В чем ошибка при решении матричного уравнения?

21.01.2011, 15:28. Показов 506. Ответов 8
Метки нет (Все метки)

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
type
mas=array [1..3,1..3] of integer;
var
a,n,q,pr:mas;
h,k,g,i,l,j,t,d,e:integer;
b,xc,x:array [1..3] of real;
o,z:array [1..3,1..3] of real;
begin
clrscr;
writeln('vvedite matrichnoe yrovnenie');
for i:= 1 to 3 do
for j:= 1 to 3 do
readln(A[i,j]);
begin
clrscr;
writeln('matrica:=');
begin
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
write(a[i,j]:4);
writeln(' ');
end;
end;
begin
writeln('vvedite B');
for j:= 1 to 3 do
read(b[j]);
begin
readkey;;
for i:= 1 to 3 do
for j:= 1 to 3 do
G:=A[1,1]*A[2,2]*A[3,3]+A[1,2]*A[2,3]*A[3,1]+A[2,1]*A[3,2]*A[1,3]-A[1,3]*A[2,2]*A[3,1]-A[1,2]*A[2,1]*A[3,3];
H:=A[2,3]*A[3,2]*A[1,1];
D:=G-H;
writeln('opredelitel:=',D);
end;
begin
writeln('algebroicheskie dopolneniya:=');
for i:=1 to 3 do
for j:=1 to 3 do
readkey;
n[1,1]:=a[2,2]*a[3,3]-a[2,3]*a[3,2];
writeln('a1.1=',n[1,1]);
writeln;
readkey;
n[1,2]:=(a[2,1]*a[3,3]-a[2,3]*a[3,1])*(-1);
writeln('a1.2=',n[1,2]);
writeln;
readkey;
n[1,3]:=a[2,1]*a[3,2]-a[2,2]*a[3,1];
writeln('a1.3=',n[1,3]);
writeln;
readkey;
n[2,1]:=(a[1,2]*a[3,3]-a[1,3]*a[3,2])*(-1);
writeln('a2.1=',n[2,1]);
writeln;
readkey;
n[2,2]:=a[1,1]*a[3,3]-a[1,3]*a[3,1];
writeln('a2.2=',n[2,2]);
writeln;
readkey;
n[2,3]:=(a[1,1]*a[3,2]-a[1,2]*a[3,1])*(-1);
writeln('a2.3=',n[2,3]);
writeln;
readkey;
n[3,1]:=a[1,2]*a[2,3]-a[1,3]*a[2,2];
writeln('a3.1=',n[3,1]);
writeln;
readkey;
n[3,2]:=(a[1,1]*a[2,3]-a[1,3]*a[2,1])*(-1);
writeln('a3.2=',n[3,2]);
writeln;
readkey;
n[3,3]:=a[1,1]*a[2,2]-a[1,2]*a[2,1];
writeln('a3.3=',n[3,3]);
writeln;
readkey;
begin
for i:=1 to 3 do
for j:=1 to 3 do
end;
writeln('matrica a=');
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(' ',n[i,j]);
writeln(' ');
end;
end;
end;
begin
for i:=1 to 3 do
for j:=i+1 to 3 do
begin
k:=n[i,j];
n[i,j]:=n[j,i];
n[j,i]:=k;
end;
begin
writeln('transponiruem matrixy=');
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
write(' ',n[i,j]);
writeln(' ');
end;
end;
end;
begin
end;
begin
writeln('organizuem proverky');
for i:=1 to 3 do
for j:=1 to 3 do
for l:=1 to 3 do
pr[i,j]:=pr[i,j]+a[l,i]*n[j,l];
end;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(pr[i,j]:4);
writeln(' ');
end;
begin
end;
begin
for i:= 1 to 3 do
for j:= 1 to 3 do
x[i]:=x[i]+n[i,j]*b[j];
begin
for i:= 1 to 3 do
xc[i]:=x[i]*(1/d);
end;
 
begin
writeln('nahodim korni');
for i:=1 to 3 do
write(xc[i]:2:2);
writeln( ' ');
Readln;
readkey;
end;
end;
end;
end;
end;
end;
Это решение СЛУ матричным методом. Проблемма в проверке и нахождении корня ! мб ошибка в формуле, 100рас проверел ненашол, оч прошу, опытные программисты гляньте в чем ошипка. БУДУ очень очень очень благодарен! Вот на всякий случий теор матерьял которым пользовался при состовлении кода http://ru.wikipedia.org/wiki/Матричный_метод! Когда идет проверка должна получитьс я матрица типа:
определитель 0 0
0 определитель 0
0 0 определитель

Проверка происходит при умножении исходной матрицы на транспонировваную!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2011, 15:28
Ответы с готовыми решениями:

Ошибка при решении уравнения
есть уравнение: ((lg(x))^2)+(5/3)*(lg(x))-(2/3) Записал его следующим образом: ...

Ошибка при решении уравнения
#include "stdafx.h" #include "conio.h" #include "locale.h" #include "stdio.h" #include...

Ошибка при решении уравнения
выдает следующую ошибку при решении. Error, (in dsolve/numeric/process_input) system must be...

Ошибка при решении уравнения.
Какая-то ерунда На одном компьютере маткад простейшее уравнение считает нормально На другом -...

8
78 / 50 / 46
Регистрация: 30.09.2010
Сообщений: 138
21.01.2011, 18:39 2
Во-первых в начале не подключенна библиотека
Pascal
1
uses crt;
а во вторых в конце End c точкой
Pascal
1
end.
1
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 61
21.01.2011, 19:56  [ТС] 3
Спс) но у меня не в этом проблема! неподлючин модуль экрана потомучто программу я копировал с меню и нестал дописовать эти мелочи! мне важнее какие ошипки в формулах, где, как лучьше исправить.
0
179 / 179 / 81
Регистрация: 18.12.2010
Сообщений: 346
21.01.2011, 21:49 4
Хм..
Ты что-нибудь слышал о форматировании кода? о комментариях?.. О_о
Если ты сам мазохист, так хоть других пожалей..
В таком коде нет шансов разобраться, особенно "неопытному программисту". Ну КАК ты его писал? что ты там видел? Вот, например, строки 80-82:
Pascal
1
2
3
for i:=1 to 3 do
for j:=1 to 3 do
end;
- нравится тебе это? двойной такой себе цикл, который НИЧЕГО не делает.. А машине что - она стерпит..
Зачем все эти begin/end не несущие смысловой нагрузки?..

И вот во всем этом - проверять, не ошибся ли ты в циферке? Я бы брал по 10 баксов за строчку..

Совет тебе:
хотя бы вставь комменты и приходи снова. Отступы - ладно, сделаю тогда за тебя (вряд ли ты сможешь, если нет привычки..)
1
Puporev
22.01.2011, 08:47
  #5

Не по теме:

Вообще человек, который пишет

Проверте в чем ошипка
никогда не напишет нормальную программу...

1
use
22.01.2011, 10:32
  #6

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
Вообще человек, который пишет
Проверте в чем ошипка
никогда не напишет нормальную программу..
Остынь.. )) это все же лучше, чем "Напишите срочно!!", даже если оно бисашыпог.. ))
Надо верить в людей.

1
Фрилансер
Эксперт С++
5843 / 1224 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
22.01.2011, 10:36 7
Цитата Сообщение от Dimson_KZ Посмотреть сообщение
end; begin end; begin

Не по теме:

Это ж сколько надо трудиться что б додуматься такое написать..

1
78 / 50 / 46
Регистрация: 30.09.2010
Сообщений: 138
22.01.2011, 11:33 8
Ну вот более лучший вариант!.. Думаю... Человек скорее всего это всё повыдергивали из функций и процедур и затолкал в главную программу... хотя всё равно странно
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 var
    a,n,pr:array [1..3,1..3] of integer;
    h,k,g,i,l,j,d:integer;
    b,xc,x:array [1..3] of real;
begin
{-----------------------------------------------------} //заполнение матрицы А
    writeln('vvedite matrichnoe yrovnenie');
    for i:= 1 to 3 do
        for j:= 1 to 3 do
        readln(A[i,j]);
 
{-----------------------------------------------------}//Вывод на Экран
    writeln('matrica:=');
 
    for i:= 1 to 3 do
    begin
        for j:= 1 to 3 do
        write(a[i,j]:4);
        writeln(' ');
    end;
{-----------------------------------------------------} //Заполнение столбца B
    writeln('vvedite B');
    
    for j:= 1 to 3 do
        read(b[j]);
{-----------------------------------------------------}
    G:=A[1,1]*A[2,2]*A[3,3]+A[1,2]*A[2,3]*A[3,1]+A[2,1]*A[3,2]*A[1,3]-A[1,3]*A[2,2]*A[3,1]-A[1,2]*A[2,1]*A[3,3];//магические числа :\
    H:=A[2,3]*A[3,2]*A[1,1];
    D:=G-H;
    writeln('opredelitel:=',D);
{-----------------------------------------------------} //Ужас...
    writeln('algebroicheskie dopolneniya:=');
    
    n[1,1]:=a[2,2]*a[3,3]-a[2,3]*a[3,2];
    writeln('a1.1=',n[1,1]);
    writeln;
    
    n[1,2]:=(a[2,1]*a[3,3]-a[2,3]*a[3,1])*(-1);
    writeln('a1.2=',n[1,2]);
    writeln;
    
    n[1,3]:=a[2,1]*a[3,2]-a[2,2]*a[3,1];
    writeln('a1.3=',n[1,3]);
    writeln;
    
    n[2,1]:=(a[1,2]*a[3,3]-a[1,3]*a[3,2])*(-1);
    writeln('a2.1=',n[2,1]);
    writeln;
    
    n[2,2]:=a[1,1]*a[3,3]-a[1,3]*a[3,1];
    writeln('a2.2=',n[2,2]);
    writeln;
    
    n[2,3]:=(a[1,1]*a[3,2]-a[1,2]*a[3,1])*(-1);
    writeln('a2.3=',n[2,3]);
    writeln;
    
    n[3,1]:=a[1,2]*a[2,3]-a[1,3]*a[2,2];
    writeln('a3.1=',n[3,1]);
    writeln;
        
    n[3,2]:=(a[1,1]*a[2,3]-a[1,3]*a[2,1])*(-1);
    writeln('a3.2=',n[3,2]);
    writeln;
        
    n[3,3]:=a[1,1]*a[2,2]-a[1,2]*a[2,1];
    writeln('a3.3=',n[3,3]);
    writeln;
{-----------------------------------------------------}
 
    writeln('matrica a=');
        
    for i:=1 to 3 do
        begin
            for j:=1 to 3 do
            write(' ',n[i,j]);
            writeln;
        end;
{-----------------------------------------------------} 
    for i:=1 to 3 do
        for j:=i+1 to 3 do
            begin
                k:=n[i,j];
                n[i,j]:=n[j,i];
                n[j,i]:=k;
            end;
{-----------------------------------------------------}         
    writeln('transponiruem matrixy=');
    
    for i:= 1 to 3 do
        begin
            for j:= 1 to 3 do
                write(' ',n[i,j]);
                writeln(' ');
        end;
{-----------------------------------------------------}
    writeln('organizuem proverky');
    
    for i:=1 to 3 do
        for j:=1 to 3 do
            for l:=1 to 3 do
                pr[i,j]:=pr[i,j]+a[l,i]*n[j,l];
{-----------------------------------------------------}     
    for i:=1 to 3 do
    begin
        for j:=1 to 3 do
            write(pr[i,j]:4);
            writeln;
    end;
{-----------------------------------------------------} 
    for i:= 1 to 3 do
        for j:= 1 to 3 do
            x[i]:=x[i]+n[i,j]*b[j];
    
    for i:= 1 to 3 do
        xc[i]:=x[i]*(1/d);
    writeln;
{-----------------------------------------------------} 
    writeln('nahodim korni');
    for i:=1 to 3 do
        writeln(xc[i]:2:2);
 
    writeln('Нажмите Enter для завершения');
    readln; 
end.
1
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 61
22.01.2011, 19:19  [ТС] 9
буду знать что я безнадежен!))) всеровно спасибо всем! выручили
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2011, 19:19

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

Ошибка при решении дифференциального уравнения
Здравствуйте, помогите разобраться с ошибкой в решении дифура. Задание: численно решить диф....

Ошибка при решении дифференциального уравнения
Маткад брыкается и отказывается считать Уважаемые знатоки, посмотрите пожалуйста решение (файл в...

непонятная ошибка при решении уравнения
Решаю смешанную систему уравнений (маткадовский файл приложен в архиве), если искать корни через...

Ошибка при решении квадратного уравнения
Решаю задачу(Решить квадратное уравнение),не выдает результат, в чем ошибка? #include <stdio.h>...


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

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

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