Solving multiple equations with constants like c_i
Show older comments
I request for help/ any suggestions. I need to solve for X1, X2, X3, X4, X5, X6, X7, X8
eq1(i) = p_11*X1 + p_12*X2 + p_13*X3 + p_14*X4 + p_15*X5 + p_16*X6 + p_17*X7*sin(X8) == C_1(i);
eq2(i) = p_21*X1 + p_22*X2 + p_23*X3 + p_24*X4 + p_25*X5 + p_26*X6 + p_27*X7*sin(X8) == C_2(i);
eq3(i) = p_31*X1 + p_32*X2 + p_33*X3 + p_34*X4 + p_35*X5 + p_36*X6 + p_37*X7*cos(X8) == C_3(i);
eq4(i) = p_41*X1 + p_42*X2 + p_43*X3 + p_44*X4 + p_45*X5 + p_46*X6 + p_47*X7*sin(X8) == C_4(i);
eq5(i) = p_51*X1 + p_52*X2 + p_53*X3 + p_54*X4 + p_55*X5 + p_56*X6 + p_57*X7*sin(X8) == C_5(i);
eq6(i) = p_61*X1 + p_62*X2 + p_63*X3 + p_64*X4 + p_65*X5 + p_66*X6 + p_67*X7*sin(X8) == C_6(i);
eq7(i) = p_71*X1 + p_72*X2 + p_73*X3 + p_74*X4 + p_75*X5 + p_76*X6 + p_77*X7*sin(X8) == C_7(i);
eq8(i) = p_81*X1 + p_82*X2 + p_83*X3 + p_84*X4 + p_85*X5 + p_86*X6 + p_87*X7 == C_8(i);
"
I have written the following code but it is not running
% Define symbolic variables
syms X1 X2 X3 X4 X5 X6 X7 X8;
% Define symbolic parameters and constants
syms p_11 p_12 p_13 p_14 p_15 p_16 p_17 p_21 p_22 p_23 p_24 p_25 p_26 p_27 ...
p_31 p_32 p_33 p_34 p_35 p_36 p_37 p_41 p_42 p_43 p_44 p_45 p_46 p_47 ...
p_51 p_52 p_53 p_54 p_55 p_56 p_57 p_61 p_62 p_63 p_64 p_65 p_66 p_67 ...
p_71 p_72 p_73 p_74 p_75 p_76 p_77 p_81 p_82 p_83 p_84 p_85 p_86 p_87 ...
C_1 C_2 C_3 C_4 C_5 C_6 C_7 C_8;
p_11_val = 1;
p_12_val = 2;
p_13_val = 3;
p_14_val = 4;
p_15_val = 5;
p_16_val = 6;
p_17_val = 7;
p_21_val = 8;
p_22_val = 9;
p_23_val = 10;
p_24_val = 11;
p_25_val = 12;
p_26_val = 13;
p_27_val = 14;
p_31_val = 15;
p_32_val = 16;
p_33_val = 17;
p_34_val = 18;
p_35_val = 19;
p_36_val = 20;
p_37_val = 21;
p_41_val = 22;
p_42_val = 23;
p_43_val = 24;
p_44_val = 25;
p_45_val = 26;
p_46_val = 27;
p_47_val = 28;
p_51_val = 29;
p_52_val = 30;
p_53_val = 31;
p_54_val = 32;
p_55_val = 33;
p_56_val = 34;
p_57_val = 35;
p_61_val = 36;
p_62_val = 37;
p_63_val = 38;
p_64_val = 39;
p_65_val = 40;
p_66_val = 41;
p_67_val = 42;
p_71_val = 43;
p_72_val = 44;
p_73_val = 45;
p_74_val = 46;
p_75_val = 47;
p_76_val = 48;
p_77_val = 49;
p_81_val = 50;
p_82_val = 51;
p_83_val = 52;
p_84_val = 53;
p_85_val = 54;
p_86_val = 55;
p_87_val = 56;
C_1 = [4 3 5];
C_2 = [2 4 6];
C_3 = [5 6 8];
C_4 = [1 2 3];
C_5 = [2 3 4];
C_6 = [3 4 5];
C_7 = [2 3 5];
C_8 = [3 6 2];
% Define arrays to store equations
eq1 = sym(zeros(1, length(C_1)));
eq2 = sym(zeros(1, length(C_1)));
eq3 = sym(zeros(1, length(C_1)));
eq4 = sym(zeros(1, length(C_1)));
eq5 = sym(zeros(1, length(C_1)));
eq6 = sym(zeros(1, length(C_1)));
eq7 = sym(zeros(1, length(C_1)));
eq8 = sym(zeros(1, length(C_1)));
% Populate the arrays with equations for each value of C_i
for i = 1:length(C_1)
eq1(i) = p_11*X1 + p_12*X2 + p_13*X3 + p_14*X4 + p_15*X5 + p_16*X6 + p_17*X7*sin(X8) == C_1(i);
eq2(i) = p_21*X1 + p_22*X2 + p_23*X3 + p_24*X4 + p_25*X5 + p_26*X6 + p_27*X7*sin(X8) == C_2(i);
eq3(i) = p_31*X1 + p_32*X2 + p_33*X3 + p_34*X4 + p_35*X5 + p_36*X6 + p_37*X7*cos(X8) == C_3(i);
eq4(i) = p_41*X1 + p_42*X2 + p_43*X3 + p_44*X4 + p_45*X5 + p_46*X6 + p_47*X7*sin(X8) == C_4(i);
eq5(i) = p_51*X1 + p_52*X2 + p_53*X3 + p_54*X4 + p_55*X5 + p_56*X6 + p_57*X7*sin(X8) == C_5(i);
eq6(i) = p_61*X1 + p_62*X2 + p_63*X3 + p_64*X4 + p_65*X5 + p_66*X6 + p_67*X7*sin(X8) == C_6(i);
eq7(i) = p_71*X1 + p_72*X2 + p_73*X3 + p_74*X4 + p_75*X5 + p_76*X6 + p_77*X7*sin(X8) == C_7(i);
eq8(i) = p_81*X1 + p_82*X2 + p_83*X3 + p_84*X4 + p_85*X5 + p_86*X6 + p_87*X7 == C_8(i);
end
% Solve the system of equations for each value of C_i
solutions = cell(length(C_1), 1);
for i = 1:length(C_1)
solutions{i} = solve([eq1(i), eq2(i), eq3(i), eq4(i), eq5(i), eq6(i), eq7(i), eq8(i)], [X1, X2, X3, X4, X5, X6, X7, X8]);
end
% Display solutions for each value of C_i
for i = 1:length(C_1)
fprintf('Solutions for C_1(%d):\n', i);
disp(solutions{i});
end
Accepted Answer
More Answers (0)
Categories
Find more on Symbolic Math Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!