solution of system of 8 linear equation

조회 수: 3 (최근 30일)
Himanshu SINGLA
Himanshu SINGLA 2020년 2월 4일
댓글: David Goodmanson 2020년 2월 5일
Hello everyone, I am trying to solve system of 8 linear equation in 8 variable (R1,R2,R3,R4,R5,R6,R7,R8). I want to plot theta (from zero to 90 degrees) Vs R_i(i=1,2,..,8).
syms R1 R2 R3 R4 R5 R6 R7 R8
% theta=1.57;
theta = linspace(0,pi/2,50)
ET=1i;
ONE=1;
ALM=9.4;
MU=4;
ALFT=7.40;
ALFC=1.98;
RHO=1.74;
VRHO=0.9;
HZBT=1.5;%1.51.25;
OMG=5;
OMGS=OMG*OMG;
T0=298;
CE=1.04 ;
AT0=0.1;
AT1=0.5;
AT2=0.6;
AT3=0.7;
KPA=1.7; %
KPA1=0.35; %
KPA2=0.45;
KPA3=0.55;
KPA4=0.65;
KPA5=0.76;
KPA6=0.96;
G=2.5;%1.2,2.5
C3=4.2;
K1=0.5;
M1=5;
G1=2.5;
G2=0.35;
G3=0.45;
G4=0.55;
G5=0.76;
G6=0.86;
ABT1=(3.*ALM+2.*MU)*ALFT;
ABT2=(3.*ALM+2.*MU)*ALFC;%
ALM0=ALM - (ABT2*ABT2)/(VRHO);
GMA1=ABT1 +((HZBT*ABT2)/VRHO); %
GMA2=ABT2/VRHO; %
Ce=(RHO*CE/T0)+ (HZBT*HZBT)/(VRHO);
K=(HZBT/VRHO);
T0S=AT0+(ET./OMG);%
T1S=AT1+(ET./OMG);%
T2S=AT2+(ET./OMG);%
T3S=AT3+(ET./OMG);%
M= 1/VRHO;
C1S=(ALM0+2*MU)./RHO;
GMA1B=GMA1/RHO;
GMA2B=GMA2/RHO;
K2= GMA1/Ce;
K3= KPA/(Ce*T0*T0S);
K4= K/Ce;
K5= KPA1/(Ce*T0*T0S);
D1= GMA2/M;
D2=K/(M*T2S);
D3= G/(M*T2S);
D4= G1/(M*T2S);
F1= KPA6*T1S*OMGS;
F2= (KPA4*+KPA5)*T1S*OMGS;
F3= KPA1*(AT0+(ET*KPA2)/(OMG*KPA1))+C3;
F4= KPA*(AT0 + (ET*KPA3)/(OMG*KPA));
H1= G6*T3S*OMGS;
H2= (G4+G5)*T3S*OMGS;
H3=G1*(AT2+(ET*G2)/(OMG*G1))+M1;
H4=G*(AT2+(ET*G3/OMG*G1));
V1=10;
V2=2.5;
V3=3;
V4=8;
V5=9;
V6=34;
V7=8;
V8=1.5;
V1S=V1*V1;
V2S=V2*V2;
V3S=V3*V3;
V4S=V4*V4;
V5S=V5*V5;
V6S=V6*V6;
V7S=V7*V7;
V8S=V8*V8;
V=V1;
VOV1S=(V*V)/(V1S);
VOV2S=(V*V)/(V2S);
VOV3S=(V*V)/(V3S);
VOV4S=(V*V)/(V4S);
VOV5S=(V*V)/V5S;
VOV6S=(V*V)/V6S;
VOV7S=(V*V)/V7S;
VOV8S=(V*V)/V8S;
VOV1C=VOV1S*V/V1;
VOV2C=VOV2S*V/V2;
VOV3C=VOV3S*V/V3;
VOV4C=VOV4S*V/V4;
VOV5C=VOV5S*V/V5;
VOV6C=VOV6S*V/V6;
VOV7C=VOV7S*V/V7;
VOV1F=VOV1S*VOV1S;
VOV2F=VOV2S*VOV2S;
VOV3F=VOV3S*VOV3S;
VOV4F=VOV4S*VOV4S;
VOV5F=VOV5S*VOV5S;
VOV6F=VOV6S*VOV6S;
VOV7F=VOV7S*VOV7S;
ST=sin(theta);
STS=ST*ST;
CT=cos(theta);
CTS=CT*CT;
ST1= (V1*ST)/V;
ST1S=ST1*ST1;
CT1S=1-ST1S;
CT1=sqrt(CT1S);
ST2= (V2*ST)/V;
ST2S=ST2*ST2;
CT2S=1-ST2S;
CT2=sqrt(CT2S);
ST3= (V3*ST)/V;
ST3S=ST3*ST3;
CT3S=1-ST3S;
CT3=sqrt(CT3S);
ST4= (V4*ST)/V;
ST4S=ST4*ST4;
CT4S=1-ST4S;
CT4=sqrt(CT4S);
ST5= (V5*ST)/V;
ST5S=ST5*ST5;
CT5S=1-ST5S;
CT5=sqrt(CT5S);
ST6= (V6*ST)/V;
ST6S=ST6*ST6;
CT6S=1-ST6S;
CT6=sqrt(CT6S);
ST7= (V7*ST)/V;
ST7S=ST7*ST7;
CT7S=1-ST7S;
CT7=sqrt(CT7S);
ST8= (V8*ST)/V;
ST8S=ST8*ST8;
CT8S=1-ST8S;
CT8=sqrt(CT8S);
C11=(-D2*V1S)*(K1*V1S)-D4*F4*V1S+D4*(K3-V1S);
C12=(-D2*V2S)*(K1*V2S);
C13=(-D2*V3S)*(K1*V3S);
C14=(-D2*V4S)*(K1*V4S)-D4*F4*V4S+D4*(K3-V4S);
C15=(-D2*V5S)*(K1*V5S)-D4*F4*V5S+D4*(K3-V5S);
D11=(D3-V1S)*K1*V1S+D4*(-K4*V1S);
D12=(D3-V2S)*K1*V2S+D4*(-K4*V2S);
D13=(D3-V3S)*K1*V3S+D4*(-K4*V3S);
D14=(D3-V4S)*K1*V4S+D4*(-K4*V4S);
D15=(D3-V5S)*K1*V5S+D4*(-K4*V5S);
N11=(-D1*V1S)*(K1*V1S)+(-K2*V1S)*D4;
N12=(-D1*V2S)*(K1*V2S)+(-K2*V2S)*D4;
N13=(-D1*V3S)*(K1*V3S)+(-K2*V3S)*D4;
N14=(-D1*V4S)*(K1*V4S)+(-K2*V4S)*D4;
N15=(-D1*V5S)*(K1*V5S)+(-K2*V5S)*D4;
CC1=(GMA2B*N11+D11*(C1S-V1S))/(C11*GMA2B-GMA1B*D11);
CC2=(GMA2B*N12+D12*(C1S-V2S))/(C12*GMA2B-GMA1B*D12);
CC3=(GMA2B*N13+D13*(C1S-V3S))/(C13*GMA2B-GMA1B*D13);
CC4=(GMA2B*N14+D14*(C1S-V4S))/(C14*GMA2B-GMA1B*D14);
CC5=(GMA2B*N15+D15*(C1S-V5S))/(C15*GMA2B-GMA1B*D15);
CD1=(N11-D11)/C11;
CD2=(N12-D12)/C12;
CD3=(N13-D13)/C13;
CD4=(N14-D14)/C14;
CD5=(N15-D15)/C15;
CE1=(-K2*V1S+K4*V1S*CD1-(K3-V1S)*CC1)/(K5);
CE2=(-K2*V2S+K4*V2S*CD2-(K3-V2S)*CC2)/(K5);
CE3=(-K2*V3S+K4*V3S*CD3-(K3-V3S)*CC3)/(K5);
CE4=(-K2*V4S+K4*V4S*CD4-(K3-V4S)*CC4)/(K5);
CE5=(-K2*V5S+K4*V5S*CD5-(K3-V5S)*CC5)/(K5);
CF1=-D1*V1S;
CF2=-D1*V2S;
CF3=-D1*V3S;
CF4=-D1*V4S+(D2*V4S)*CC4*-((D3-V4S)*CD4)/D4;
CF5=-D1*V5S+;
CH6= -(F1+F3*V6S)/(K1*V6S);
CH7= -(F1+F3*V7S)/(K1*V7S);
A11=(ALM0+2*MU*CT1S+GMA1*CC1+GMA2*CD1)*VOV1S;
A12=(ALM0+2*MU*CT2S+GMA1*CC2+GMA2*CD2)*VOV2S;
A13=(ALM0+2*MU*CT3S+GMA1*CC3+GMA2*CD3)*VOV3S;
A14=(2*MU*CT3S+GMA1*CC4+GMA2*CD4)*VOV4S;
A15=(2*MU*CT4S+GMA1*CC5+GMA2*CD5)*VOV5S;
A16=0;
A17=0;
A18= (MU*2*ST8*CT8)*VOV8S;
A21=2*ST1*CT1*VOV1S;
A22=2*ST2*CT2*VOV2S;
A23=2*ST3*CT3*VOV3S;
A24=2*ST4*CT4*VOV4S;
A25=2*ST5*CT5*VOV5S;
A26=0;
A27=0;
A28=-(CT8S-ST8S)*VOV8S;
A31=(KPA*CC1+KPA1*CE1)*CT1*VOV1C;
A32=(KPA*CC2+KPA1*CE2)*CT2*VOV2C;
A33=(KPA*CC3+KPA1*CE3)*CT3*VOV3C;
A34=(KPA*CC4+KPA1*CE4)*CT4*VOV4C;
A35=(KPA*CC5+KPA1*CE5)*CT5*VOV5C;
A36=KPA1*CT6*VOV6C;
A37=KPA1*CT7*VOV7C;
A38=0;
A41=(G*CD1+KPA1*CF1)*CT1*VOV1C;
A42=(G*CD2+KPA1*CF2)*CT2*VOV2C;
A43=(G*CD3+KPA1*CF3)*CT3*VOV3C;
A44=(G*CD4+KPA1*CF4)*CT4*VOV4C;
A45=(G*CD5+KPA1*CF5)*CT5*VOV5C;
A46=G1*ST6*CH6*VOV6C;
A47=G1*ST7*CH7*VOV7C;
A48=0;
A51=(KPA4+(KPA5+KPA6)*CT1S)*CE1*VOV1F;
A52=(KPA4+(KPA5+KPA6)*CT2S)*CE2*VOV2F;
A53=(KPA4+(KPA5+KPA6)*CT3S)*CE3*VOV3F;
A54=(KPA4+(KPA5+KPA6)*CT4S)*CE4*VOV4F;
A55=(KPA4+(KPA5+KPA6)*CT5S)*CE5*VOV5F;
A56=(KPA5+KPA6)*ST6*CT6*VOV6S;
A57=(KPA5+KPA6)*ST7*CT7*VOV7S;
A58=0;
A61=(KPA5+KPA6)*ST1*CT1*CE1*VOV1F;
A62=(KPA5+KPA6)*ST2*CT2*CE2*VOV2F;
A63=(KPA5+KPA6)*ST3*CT3*CE3*VOV3F;
A64=(KPA5+KPA6)*ST4*CT4*CE4*VOV4F;
A65=(KPA5+KPA6)*ST5*CT5*CE5*VOV5F;
A66=(KPA6*ST6S-KPA5*ST6*CT6)*VOV6S;
A67=(KPA6*ST7S-KPA5*ST7*CT7)*VOV7S;
A68=0;
A71= (G4+(G5+G6)*CT1S)*CF1*VOV1F;
A72= (G4+(G5+G6)*CT2S)*CF1*VOV2F;
A73= (G4+(G5+G6)*CT3S)*CF1*VOV3F;
A74= (G4+(G5+G6)*CT4S)*CF1*VOV4F;
A75= (G4+(G5+G6)*CT5S)*CF1*VOV5F;
A76= (G5+G6)*ST6*CT6*VOV6F;
A77=(G5+G6)*ST7*CT7*VOV7F;
A78=0;
A81=(G5+G6)*ST1*CT1*CF1*VOV1F;
A82=(G5+G6)*ST2*CT2*CF2*VOV2F;
A83=(G5+G6)*ST3*CT3*CF3*VOV3F;
A84=(G5+G6)*ST4*CT4*CF4*VOV4F;
A85=(G5+G6)*ST5*CT5*CF5*VOV5F;
A86=(G6*ST6S-G5*ST6*CT6)*CH6*VOV6F;
A87=(G6*ST7S-G5*ST7*CT7)*CH7*VOV7F;
A88=0;
B1=-A11;
B2=-A21;
B3=A31;
B4=A41;
B5=A51;
B6=A61;
B7=A71;
B8=A81;
% syms A11 A12 A13 A14 A15 A16 A17 A18 A21 A22 A23 A24 A25 A26 A27 A28 A31 A32 A33 A34 A35 A36 A37 A38 A41 A42 A43 A44 A45 A46 A47 A48 A51 A52 A53 A54 A55 A56 A57 A58 A61 A62 A63 A64 A65 A66 A67 A68 A71 A72 A73 A74 A75 A76 A77 A78 A81 A82 A83 A84 A85 A86 A87 A88 B1 B2 B3 B4 B5 B6 B7 B8 R1 R2 R3 R4 R5 R6 R7 R8 R1 A12 R2 A13 R3 A14 R4 A15 R5 A16 R6 A17 R7 A18 R8 B1
eqn1 = A11*R1+A12*R2+A13*R3+A14*R4+A15*R5+A16*R6+A17*R7+A18*R8==B1;
eqn2 = A21*R1+A22*R2+A23*R3+A24*R4+A25*R5+A26*R6+A27*R7+A28*R8==B2;
eqn3 = A31*R1+A32*R2+A33*R3+A34*R4+A35*R5+A36*R6+A37*R7+0*R8==B3;
eqn4 = A41*R1+A42*R2+A43*R3+A44*R4+A45*R5+A46*R6+A47*R7+0*R8==B4;
eqn5 = A51*R1+A52*R2+A53*R3+A54*R4+A55*R5+A56*R6+A57*R7+0*R8==B5;
eqn6 = A61*R1+A62*R2+A63*R3+A64*R4+A65*R5+A66*R6+A67*R7+0*R8==B6;
eqn7 = A71*R1+A72*R2+A73*R3+A74*R4+A75*R5+A76*R6+A77*R7+0*R8==B7;
eqn8 = A81*R1+A82*R2+A83*R3+A84*R4+A85*R5+A86*R6+A87*R7+0*R8==B8;
[A,B] = equationsToMatrix([eqn1, eqn2, eqn3, eqn4, eqn5, eqn6, eqn7, eqn8], [R1,R2,R3,R4,R5,R6,R7,R8]);
X = linsolve(A,B);
plot(theta,R1);
Please help me with this.
  댓글 수: 1
David Goodmanson
David Goodmanson 2020년 2월 5일
Hi HS,
The first thing you really need to do is to take a step back and put many of your individually-named variables into vector form. This will end up being far easier and more error-free, besides being the way Matlab is intended to be used. First, turn the conglomoration V1, V2, V3 etc. into a single row vector:
v = [10 2.5 3 8 9 34 8 1.5];
which puts the constants into a single object and you can of course get to every one of them by v(4) = 8 etc. With much of your code you are repeating the exact same operation with individually numbered variables, and you can accomplish the same thing by using element-by-element operations on vectors. For element-by-element calculations, in Matlab syntax there is a lot of use of .* and ./ (dot-star and dot-slash). These five lines of code
vs = v.*2;
w = v(1);
vovs = w^2./vs;
vovc = w*vovs./v;
vovf = vovs.^2;
replace 31 lines of your existing code. (notationally you used V = V1 but I couldn't use v = v(1) because v is already in use, so I went with w instead).
You don't have a VOV8C or VOV8F, which appears to be intentional. In the code above, vovc and vovf do have eight elements but if index 8 is not wanted you can use
vovc = vovc(1:7);
vovf = vovf(1:7);
which keeps just the first seven elements.
There are many more parts of your code that can be improved in the same way and it's important to take the time to learn to do that. If you use Matlab on a regular basis you will save that time a hundred times over.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by