Решение системы методом Гаусса — Жордана по методу узловых потенциалов |
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? |
Текстовая версия | 27.04.2024 18:09 |