%% pld22F23.m
% Halozatert lasd H22F23
% Hatarozzuk meg az inverz hibrid karakterisztikat! 
% (i1,u2) = K * (u1,i2)

syms u1 i1 u2 i2 UA UB R alfa iv

% csomoponti egyenletek
eq1 = u1 -R*i1/2-UA == 0;
eq2 = -i1 + UA/(2*R) + (UA-UB)/R + (UA-u2)/R == 0;
eq3 = alfa*iv + (UB-UA)/(2*R) +(UB-u2)/(2*R) == 0;
eq4 = -i2 + u2/(3*R) + (u2-UB)/(2*R) + (u2-UA)/R == 0;
% vezerlomennyisegre vonatkozo egyenlet
eq5 = iv == (UA-u2)/R;

%%
% megoldas i1,u2-re (ezek a fuggo valtozok)
solK = solve([eq1,eq2,eq3,eq4,eq5], [i1,u2,UA,UB,iv])

%%

pretty(simplify( collect(solK.i1,[u1, i2])))
pretty(simplify( collect(solK.u2,[u1, i2])))

%% Megoldas numerikus modon
R = 10; alfa= 0.8;
P = [-R/2 0 -1 0 0;...
  -1 -1/R 5/(2*R) -1/R 0;...
  0 -1/(2*R) -1/(2*R) 1/R alfa;...
  0 11/(6*R) -1/R -1/(2*R) 0;...
  0 1/R -1/R 0 1];
Q = [-1 0;0 0;0 0;0 1;0 0];
PQ = inv(P)*Q;
PQ(1:2,1:2)

%% behelyettesitessel
% solKsubs = subs([solK.i1, solK.u2], {R,alfa},{10, 0.8});
% pretty(simplify( collect(solKsubs(1),[u1, i2])))
% pretty(simplify( collect(solKsubs.u2,[u1, i2])))

