Помощь - Поиск - Пользователи - Календарь
Полная версия: Решение СЛАУ методом Гаусса И крамера..
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Andrewshkovskii
Есть рабочий код программы для Решение СЛАУ методом Гаусса.
Необходимо добавить туда вектор невязок.
Он высчитывается как 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 : я добавил ещё файл с с исходником метода,может кому нужен будет.
volvo
Цитата
Vnev тоже риал

Vnev - это не Real, а массив Real-ов. Ты хочешь просто вещественное число записать сразу в массив? Может, все-таки, по индексу обратиться?
Andrewshkovskii
где ошибка??Тут я пытаюсь перемножить матрицу на вектор :

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;
volvo
Цитата
где ошибка??
Ошибка какая? Я вижу только логическую: при перемножении матрицы на вектор обычно делают так:

summ:=summ+m[i,j]*x[J]; { <--- Смотри на индекс массива X }
Andrewshkovskii
да я уже заметил..Спасибо,всеравно!:)
Голова вообще не работает...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.