IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Решение СЛАУ методом Гаусса И крамера.., векторы невязок.
Andrewshkovskii
сообщение 24.12.2007 21:17
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Есть рабочий код программы для Решение СЛАУ методом Гаусса.
Необходимо добавить туда вектор невязок.
Он высчитывается как Vnev=Ax-b. где b= столбец свободных членов,x- вектор решений матрицы,A - основная матрица.

Определил переменную

Vnev: array [1..4] of real;



основная матрица :

type matr=array[1..k,1..k+1] of real;
Var m:matr;



вот так пытаюсь считать невязки(точно знаю что не правильно,но это так,для теста..)

for i:=1 to rr do
for j:=1 to rr do
Vnev:=(m[i,j]*x[i])-m[i,5];
{rr размерность матрицы}



Пишет что несовпадение типов.Хотя вроде все real"ы..
Точно знаю что Vnev не правильно объявил,только как так,раз матрица это массив real,Vnev тоже риал..а пишет не совпадение.
Помогите пожалуйста разобраться:)Да и ещё,если не сложно,алгоритм перемножения матрицы на вектор..Вообщем вектор невязок как правильно посчитать..
П.С : чертов простуда..голова вообще не варит и глаза как-будто вылезают из орбит=/

П.С2 : я добавил ещё файл с с исходником метода,может кому нужен будет.

Сообщение отредактировано: Andrewshkovskii - 24.12.2007 21:21


Прикрепленные файлы
Прикрепленный файл  GAUSS.PAS ( 9.9 килобайт ) Кол-во скачиваний: 279
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.12.2007 21:24
Сообщение #2


Гость






Цитата
Vnev тоже риал

Vnev - это не Real, а массив Real-ов. Ты хочешь просто вещественное число записать сразу в массив? Может, все-таки, по индексу обратиться?
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 24.12.2007 21:25
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


где ошибка??Тут я пытаюсь перемножить матрицу на вектор :

for i:=1 to 4 do
begin
summ:=0;
for j:=1 to 4 do
begin
summ:=summ+m[i,j]*x[i];
end;
Vnev[i]:=summ;


Сообщение отредактировано: Andrewshkovskii - 24.12.2007 22:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.12.2007 22:54
Сообщение #4


Гость






Цитата
где ошибка??
Ошибка какая? Я вижу только логическую: при перемножении матрицы на вектор обычно делают так:

summ:=summ+m[i,j]*x[J]; { <--- Смотри на индекс массива X }
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 24.12.2007 22:55
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


да я уже заметил..Спасибо,всеравно!:)
Голова вообще не работает...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 7:06
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"