Linear System resolution Octave

di il
0 risposte

Linear System resolution Octave

Ho sviluppato questa funzione che non mi restituisce risultato…spero che qualcuno mi aiuti a risolvere a capire dove sbaglio

pkg load symbolic
clear all
clc
close all
global pA = [670.16189382 206.63945763 77.17934731;663.82981073 117.7274388 106.40672102;781.48029751 124.56139749 130.09864994;565.4198 247.4776 39.9227;522.4018 124.8989 72.6261; 816.1568 -27.3577 190.11];
global pR = [156.12592718 683.69695352 -77.17934731;229.95995264 633.75719928 -106.40672102;282.86681419 739.06248894 -130.09864994;68.3881 613.4067 -39.9227;153.0353 514.8627 -72.6261; 431.7708 693.1338 -190.11];

syms alfa1 beta1 gamma1 positive rational;
syms alfa2 beta2 gamma2 negative rational;
syms x y z x1 y1 z1;
Rx = [[1, 0, 0]; 0, vpa(cos(alfa1)), -vpa(sin(alfa1)); 0, vpa(sin(alfa1)), vpa(cos(alfa1))]; 
Ry=[vpa(cos(beta1)) 0 vpa(sin(beta1)); [0 1 0]; -vpa(sin(beta1)) 0 vpa(cos(beta1))];  
Rz=[vpa(cos(gamma1)) -vpa(sin(gamma1)) 0; vpa(sin(gamma1)) vpa(cos(gamma1)) 0; [0 0 1]]; 
Rx2=[[1 0 0]; 0  vpa(cos(alfa2)) -vpa(sin(alfa2)); 0  vpa(sin(alfa2))  vpa(cos(alfa2))]; 
Ry2=[vpa(cos(beta2)) 0 vpa(sin(beta2)); [0 1 0]; -vpa(sin(beta2)) 0 vpa(cos(beta2))];
Rz2=[vpa(cos(gamma2)) -vpa(sin(gamma2)) 0; vpa(sin(gamma2)) vpa(cos(gamma2)) 0; [0 0 1]];
R1=Rx*Ry*Rz;
R2=Rx2*Ry2*Rz2;
matA1= R1*vpa(transpose(pA(1,:)));
matR1= (R2*vpa(transpose(pR(1,:)))); 
matA2= (R1*vpa(transpose(pA(2,:)))); 
matR2= (R2*vpa(transpose(pR(2,:)))); 
matA3= (R1*vpa(transpose(pA(3,:)))); 
matR3= (R2*vpa(transpose(pR(3,:)))); 
eq1=matA1(1)*x+matA1(2)*y+matA1(3)*z-matR1(1)*x1-matR1(2)*y1-matR1(3)*z1==0;
eq2=matA2(1)*x+matA2(2)*y+matA2(3)*z-matR2(1)*x1-matR2(2)*y1-matR2(3)*z1==0;
eq3=matA3(1)*x+matA3(2)*y+matA3(3)*z-matR3(1)*x1-matR3(2)*y1-matR3(3)*z1==0;
matA4= (R1*vpa(transpose(pA(4,:)))); 
matR4= (R2*vpa(transpose(pR(4,:)))); 
matA5= (R1*vpa(transpose(pA(5,:)))); 
matR5= (R2*vpa(transpose(pR(5,:)))); 
matA6= (R1*vpa(transpose(pA(6,:)))); 
matR6= (R2*vpa(transpose(pR(6,:))));
eq4=matA4(1)*x+matA4(2)*y+matA4(3)*z-matR4(1)*x1-matR4(2)*y1-matR4(3)*z1==0;
eq5=matA5(1)*x+matA5(2)*y+matA5(3)*z-matR5(1)*x1-matR5(2)*y1-matR5(3)*z1==0;
eq6=matA6(1)*x+matA6(2)*y+matA6(3)*z-matR6(1)*x1-matR6(2)*y1-matR6(3)*z1==0;
eq7=gamma1>0&&gamma1+1<0;
eq8=gamma2<0;
eq9=beta1>0;
eq10=beta2<0;
eq11=alfa1>0;
eq12=alfa2<0;

r=solve(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12,x,y,z,x1,y1,z1,gamma1,gamma2,beta1,beta1,alfa1,alfa2);

Grazie in anticipo

Devi accedere o registrarti per scrivere nel forum
0 risposte