Post Reply 
Combine Export and Local variables?
04-11-2022, 09:58 AM (This post was last modified: 04-11-2022 10:56 AM by Amer7.)
Post: #11
RE: Combine Export and Local variables?
Does anyone has an idea why the program crasher mid way with error
Invalid input INPUT({ff7,gg7},"Input test", {"Prekobrojnost","Sredina"});

Code:

//PROGRAM START
LOCAL Nn1,Uu1,Qq1,Dd1,Vv1,Vv2,Kk1,Kk2;
LOCAL Kk3,Ff1,Ss0,Xx1,Cc1,Cc2,Cc3,Qq3;
LOCAL Qq2,Qq4,Pm1,Sx1;


EXPORT function1 ()
BEGIN
LOCAL ff7,gg7;
INPUT({ff7,gg7},"Input test", {"Prekobrojnost","Sredina"});
Nn1:=TRN(M1)*M2*M1;
Uu1:=TRN(M1)*M2*M3;
Qq1:=inv(Nn1);
Dd1:=-(Qq1*Uu1);
Vv1:=(M1*Dd1)+M3;
Vv2:=TRN(Vv1)*M2*Vv1;

//K1 - kontrola 1.) popravaka treba biti =0
Kk1:=TRN(M1)*M2*Vv1;
//K2 - Kontrola 2.) izjedacenja treba biti = lambdi
Kk2:=TRN(M3)*M2*Vv1;


Ff1:=Vv2/(ff7);
Ss0:=SQRT(Ff1(1,1));

Xx1:=gg7+Dd1(1,1);

// Popravljena mjerenja su pojedinacna l1,l2,l3...+ matrica V1;
Kk3:=M1*Xx1;
Pm1:=M4+Vv1;


///Stohasticki dio




Cc1:=Ff1(1,1)*Qq1;
Sx1:=SQRT(Cc1(1,1));

// Deviacija mjerenja tako sto uzmemo korjen od Cx
Cc2:=Ff1(1,1)*inv(M2);
//C2 - tacnost mjerenja

// srednje greske izvucem iz cl matrice korjen(dijagonalnih)
Qq2:=M1*Qq1*TRN(M1);

Cc3:=Qq2*Ff1(1,1);
///Srednje greške popravljenih korjen dijagonale clanova C3


Qq3:=inv(M2)-Qq2;
Qq4:=Ff1(1,1)*Qq3;


/// ISPISI MATRICA


EDITMAT(Nn1,"Matrica Normalnih jednacina");
EDITMAT(Uu1,"u=trn(A)*P*w");
EDITMAT(Qq1,"Kofaktorna matrica");
EDITMAT(Dd1,"vektor popravaka nepoznatih");
EDITMAT(Vv1,"vektor popravaka mjerenja");
EDITMAT(Vv2,"omega=VT*P*V" );
EDITMAT(Ff1,"s0^2=omega/prekobrojnost");
EDITMAT(Ss0,"s0");
EDITMAT(Xx1,"xdef poravljene nepoznate (x0+delta");
EDITMAT(Pm1,"Popravljena mjerenja ldef");
EDITMAT(Kk1,"1.Kontrola treba=~0");
EDITMAT(Kk2,"2.Kontrola treba= omega");
EDITMAT(Kk3,"3.Kontrola treba= popravljenim mjerenjima");
EDITMAT(Cc1,"Cx");
EDITMAT(Sx1,"Sx -srednja greska izracunata");
EDITMAT(Cc2,"Cl - tacnost mjerenja");
EDITMAT(Qq2,"Ql_kapa ");
EDITMAT(Qq3,"Qv");
EDITMAT(Cc3,"Cv-Srednje greske popravak sqrt diag");



PRINT("Kontrola K1 =0"+Kk1);
IF (K2=V2) THEN PRINT ("Kontrola 2 OK!");
PRINT("Kontrola K2"+Kk2);
PRINT("------------------------------");
PRINT("Kontrola K3"+Kk3);

END;
END;

Program crashes at Ss0, when viewing matrix via EDITMAT

   
   
   
   

ff77=5
gg77=8.6667

EDIT- Some values wern't matrices
Code:
//PROGRAM START
LOCAL Nn1,Uu1,Qq1,Dd1,Vv1,Vv2,Kk1,Kk2;
LOCAL Kk3,Ff1,Ss0,Xx1,Cc1,Cc2,Cc3,Qq3;
LOCAL Qq2,Qq4,Pm1,Sx1;


EXPORT function1 ()
BEGIN
LOCAL ff7,gg7;
INPUT({ff7,gg7},"Input test", {"Prekobrojnost","Sredina"});
Nn1:=TRN(M1)*M2*M1;
Uu1:=TRN(M1)*M2*M3;
Qq1:=inv(Nn1);
Dd1:=-(Qq1*Uu1);
Vv1:=(M1*Dd1)+M3;
Vv2:=TRN(Vv1)*M2*Vv1;

//K1 - kontrola 1.) popravaka treba biti =0
Kk1:=TRN(M1)*M2*Vv1;
//K2 - Kontrola 2.) izjedacenja treba biti = lambdi
Kk2:=TRN(M3)*M2*Vv1;


Ff1:=Vv2/(ff7);
Ss0:=SQRT(Ff1(1,1));

Xx1:=gg7+Dd1;

// Popravljena mjerenja su pojedinacna l1,l2,l3...+ matrica V1;
Kk3:=M1*Xx1;
Pm1:=M4+Vv1;


///Stohasticki dio




Cc1:=Ff1(1,1)*Qq1;
Sx1:=SQRT(Cc1(1,1));

// Deviacija mjerenja tako sto uzmemo korjen od Cx
Cc2:=Ff1(1,1)*inv(M2);
//C2 - tacnost mjerenja

// srednje greske izvucem iz cl matrice korjen(dijagonalnih)
Qq2:=M1*Qq1*TRN(M1);

Cc3:=Qq2*Ff1(1,1);
///Srednje greške popravljenih korjen dijagonale clanova C3


Qq3:=inv(M2)-Qq2;
Qq4:=Ff1(1,1)*Qq3;


/// ISPISI MATRICA


EDITMAT(Nn1,"Matrica Normalnih jednacina");
EDITMAT(Uu1,"u=trn(A)*P*w");
EDITMAT(Qq1,"Kofaktorna matrica");
EDITMAT(Dd1,"vektor popravaka nepoznatih");
EDITMAT(Vv1,"vektor popravaka mjerenja");
EDITMAT(Vv2,"omega=VT*P*V" );
EDITMAT(Ff1,"s0^2=omega/prekobrojnost");
//EDITMAT(Ss0,"s0");
//EDITMAT(Xx1,"xdef poravljene nepoznate (x0+delta");
EDITMAT(Pm1,"Popravljena mjerenja ldef");
EDITMAT(Kk1,"1.Kontrola treba=~0");
EDITMAT(Kk2,"2.Kontrola treba= omega");
EDITMAT(Kk3,"3.Kontrola treba= popravljenim mjerenjima");
EDITMAT(Cc1,"Cx");
///EDITMAT(Sx1,"Sx -srednja greska izracunata");
EDITMAT(Cc2,"Cl - tacnost mjerenja");
EDITMAT(Qq2,"Ql_kapa ");
EDITMAT(Qq3,"Qv");
EDITMAT(Cc3,"Cv-Srednje greske popravak sqrt diag");


PRINT("Kontrola K2"+Kk2);
PRINT("------------------------------");
PRINT("Kontrola K3"+Kk3);
PRINT("S0="+Ss0);
PRINT("Xdef. popravljene nepoznate (x0+delta)"+Xx1);
PRINT("Sx-srednja greska izracunata"+Sx1);
PRINT("Kontrola K1 =0"+Kk1);
IF (K2=V2) THEN PRINT ("Kontrola 2 OK!");



END;
END;

Now it works
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Combine Export and Local variables? - Amer7 - 04-11-2022 09:58 AM



User(s) browsing this thread: 2 Guest(s)