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

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

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

 
 Ответить  Открыть новую тему 
> Решение системы методом Гаусса — Жордана по методу узловых потенциалов
INZA
сообщение 26.11.2011 17:56
Сообщение #1


Новичок
*

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

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


Задание:Определить токи во всех ветвях цепи методом узловых потенциалов.
Решение системы методом Гаусса — Жордана.
систему уравнений я вроде составил :
φ2=0
φ1[1/r2+1/r1+1/r3]-φ3[1/r3+1/r1]=V1/r2+V2/r1
φ3[1/r4+1/r5+1/r1+1/r3] -φ1[1/r1+1/r3]=V3/r5-V2/r1+V4/r4
и метод Гаусса — Жордана тоже:
Код

program labI4;
Uses crt;
Label m1;
Var   a,a5: array [1..25,1..25] of real;
      b,b5: array [1..25] of real;
      k,i,m,n,st:integer;
      t,x,x1,x2,x3,a1,b1,c1:real;
BEGIN
clrscr;
write('Vvedite razmernost');
readln(n);
For i:=1 to n do
For k:=1 to n do begin
  write('a[',i,',',k,']=');readln(a[i,k]);a5[i,k]:=a[i,k];
end;
writeln('Vvedite svobodnye chleny B');
For i:=1 to n do begin
  write('b[',i,']=');readln(b[i]);b5[i]:=b[i];
end;
writeln('Nachalnaya matriza');
For i:=1 to n do begin
  For k:=1 to n do begin
   write('a[',i,',',k,']=',a[i,k]:5:2,'':4);
  end;
  writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
  st:=k;
  For i:=k to n do
   If a[st,k]<=a[i,k] Then st:=i;
  For i:=1 to n do begin
   t:=a[k,i];
   a[k,i]:=a[st,i];
   a[st,i]:=t;
  end;
  t:=b[k];
  b[k]:=b[st];
  b[st]:=t;
  For i:=1 to n do begin
   If i=k Then i:=i+1;
   If i=n+1 Then goto m1;
   t:=a[i,k]/a[k,k];
   For m:=1 to n do
    a[i,m]:=a[i,m]-t*a[k,m];
   b[i]:=b[i]-t*b[k];
  end;
  m1:
end;
writeln(' Konechnaya matriza');
For i:=1 to n do begin
  For k:=1 to n do begin
   write('a[',i,k,']=',a[i,k]:5:2,'':4);
  end;
  writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
  x:=b[k]/a[k,k];
  writeln('x(',k,')=',x:5:2);
  a[1,k]:=x;
end;
readkey
END.

вопрос:как это всё связать чтобы программа постоянно запрашивала значения r и V?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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