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

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

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

 
 Ответить  Открыть новую тему 
> Метод Якоби для решения СЛУР, помогите решить задачу
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Доброго времени суток!
Помогите пожалуйста решить задачу на Pascal. Мне дана система уравнений, необходимо написать программу решающую её методом Якоби. Не знаю с чего начать, подскажите пожалуйста! Прикрепляю файл с описанием метода. Заранее благодарю!

DOC-файл удален

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


Гость






Цитата
Не знаю с чего начать
С прочтения и осознания алгоритма. Ты его читала? Что именно непонятно? Я уж не говорю о том, что DOC-файлы выкладывать запрещено: Правила, пункт 1.11, поэтому файл удален.

Взамен - вот ссылка на описание метода в Вики: Метод Якоби. Зайди туда обязательно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


О ужас(( я как раз и не понимаю алгоритм, вернее понимаю только частями(( спасибо за ссылку, но я уже много раз читала про этот метод...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Visnyshka @ 18.02.2010 18:42) *
О ужас(( я как раз и не понимаю алгоритм, вернее понимаю только частями(( спасибо за ссылку, но я уже много раз читала про этот метод...
Начни с того, что опиши саму матрицу и вектор решений. Это нужно для любого метода. Как ты собираешься задавать матрицу? Читать из файла? Какая ее максимальная размерность? Выведи хотя бы уравнения на экран. Сделай хотя бы это. Если не знаешь как - спроси нас )).
А дальше можно будет приступать и к методу..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Хм...проще всего наверное будет сразу в программе задавать матрицу. У меня система из пяти уравнений:
10х1+х2+2х3-3х4+х5=10
х1+9х2+3х3+2х4+х5=40
х1-5х2+10х3-2х4-х5=9
4х1+2х2+5х3+15х4+х5=87
2х1+2х2-х3+х4-8х5=-25
если я все правильно понимаю матрица состоит из коэффициентов при х, а вектор B это то чему равны уравнения) Так?))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Visnyshka @ 25.02.2010 19:13) *
Хм...проще всего наверное будет сразу в программе задавать матрицу. У меня система из пяти уравнений:
...
если я все правильно понимаю матрица состоит из коэффициентов при х, а вектор B это то чему равны уравнения) Так?))
Ну, пусть он будет B - хоть горшком назови smile.gif. Главное состоит в том, что для реализации МЯ тебе потребуются операции над веторами и матрицами. И, значит, тебе нужно их сначала воплотить - либо сделать самой с нашей помощью, либо где-то позаимствовать юнит. И реализация самих матриц и векторов будет определяться этим.
Так что выбирай. Сделать свой модуль для работы с матрицами несложно (особенно, если заглянуть в наш FAQ).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


А разве в паскале не предусмотрен юнит который работает с матрицами? Вот я задаю матрицу:
Код

program metodyakobi;
uses crt;

var A: array[1..5,1..5]of integer;
    i,j: integer;

begin
clrscr;
A[1,1]:=10;
A[1,2]:=1;
A[1,3]:=2;
A[1,4]:=-3;
A[1,5]:=1;

A[2,1]:=1;
A[2,2]:=9;
A[2,3]:=3;
A[2,4]:=2;
A[2,5]:=1;

A[3,1]:=1;
A[3,2]:=-5;
A[3,3]:=10;
A[3,4]:=-2;
A[3,5]:=-1;

A[4,1]:=4;
A[4,2]:=2;
A[4,3]:=5;
A[4,4]:=15;
A[4,5]:=1;

A[5,1]:=2;
A[5,2]:=2;
A[5,3]:=-1;
A[5,4]:=1;
A[5,5]:=-8;

writeln('пробую вывести один эл-т ',A[2,5]); end;
readkey;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Цитата
А разве в паскале не предусмотрен юнит который работает с матрицами?

Нет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


И не лень тебе было это все писать? smile.gif
Не проще ли так:
const
m=5;
var
A: array[1..m,1..m]of integer;
i,j: integer;
f: text;

begin
Assign(f,'in.txt');
ReSet(f);
for i:=1 to m do begin
for j:=1 to m do Read(A[i,j];
ReadLn(f)
end;
Close(f);
writeln('пробую вывести один эл-т ',A[2,5]);
end.

И сделать файл in.txt (например, в блокноте)
10 1 2 -3 1
1 9 3 2 1
1 -5 10 -2 -1
4 2 5 15 1
2 2 -1 1 -8


Юнит для алгебры нужно написать. В этом вся прелесть! smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Нет, не легче, как препод требует так и пишу)) а если будет слишком заумно все равно не поверит и придерёться))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Visnyshka
program metodyakobi;
uses crt;

const
A: array[1 .. 5, 1 .. 5] of integer =
(
(10, 1, 2, -3, 1),
( 1, 9, 3, 2, 1),
( 1, -5, 10, -2, -1),
( 4, 2, 5, 15, 1),
( 2, 2, -1, 1, -8)
);

var i,j: integer;

begin
clrscr;
writeln('пробую вывести один эл-т ', A[2,5]);
readkey;
end.
У кого "заумнее", как ты думаешь? Тот код, что ты привела, или этот - практически математическое описание матрицы?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Ой здорово))) спасибо, просто я даже не подумала что можно как константу задать, а элементы так же как и в обычном массиве вызываются?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Цитата
а элементы так же как и в обычном массиве вызываются?


Для кого писано? Постом выше? blink.gif
 writeln('пробую вывести один эл-т ', A[2,5]);


Сообщение отредактировано: Ozzя -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Что вы тут все на меня так кидаетесь?!((( Да, я не умею на pascal программировать, ну так поэтому и пишу сюда, а вы прям сразу такие не довольные((( и спрашивай после этого...((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Visnyshka @ 5.03.2010 16:20) *
Что вы тут все на меня так кидаетесь?!((( Да, я не умею на pascal программировать, ну так поэтому и пишу сюда, а вы прям сразу такие не довольные((( и спрашивай после этого...((
Все правильно, Visnyshka, продолжай спрашивать. Я извиняюсь от имени всего Форума. Надеюсь, дальнейшие ответы будут корректнее.

Да, работа с массивом, заданным константой, абсолютно ничем не отличается от работы с массивом, не заданным константой.

Можно, один совет тебе дам? Смотри, допустим - возник у тебя вопрос: "элементы так же как и в обычном массиве вызываются?" У тебя есть компилятор, перед тобой редактор - этого достаточно, чтоб быстро найти ответ на этот вопрос. Набираешь простенькую программу, задаешь массив константой и вызываешь элемент, как обычно, и выводишь его на печать - а потом смотришь на результат. Вывод получился верный? Значит, твоя гипотеза о том, что элементы вызываются, как в обычном массиве - верна. И ты это сама выяснила! smile.gif Если гипотеза не подтверждается и других гипотез для проверки нет - смело спрашивай тут.

Понимаешь? Активнее экспериментируй, у тебя есть для этого все средства. Если же эксперимент не дает ответа или вопрос сложный (не знаешь, как что-то написать) - тогда спрашивай. Экспериментирование СИЛЬНО ускорит твое обучение. Не бойся его. А мы поможем.

Тебе надо бы и учебник почитать.. Как минимум до раздела "процедуры и функции". Давай, тут ничего сложного нет. Начни писать процедуру для умножения матрицы на вектор. Показывай, что выходит (даже если ПОЧТИ ничего не выходит). Поможем.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Да я читала учебник, и по делфи тоже, там все одинаково, просто возникают некоторые вопросы)) Пока кое что получается с программой, чуть позже когда будет явный результат выложу прогу) похвастаюсь)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 22.10.2020 20:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name