MATLAB Answers

solving 4 equation with 4 unkowns

3 views (last 30 days)
Omar H.
Omar H. on 6 Apr 2020
Commented: Omar H. on 6 Apr 2020
good evening
i've been trying to solve these 4 equations using fsolve but the error Index exceeds array bounds. Kept appearing.
i've read multiple posts with the same problem but i couldn' solve the problem
is there anything wrong in the equations that i haven't noticed ?
thanks for the help
function F = myfun(x)
F = [
x(4) -135 +x(2);
130*cos(x(1)) - 31.7*cos(x(2)) - 140*cos(x(3)) - 146.4*cos(172.15);
130*sin(x(1)) - 31.7*sin(x(2)) - 140*sin(x(3)) - 146.4*sin(172.15);
-45*cos(x(4)) + 70*cos(x(5)) - 140*cos(x(3)) - 53.85*cos(68.198);
-45*sin(x(4)) + 70*sin(x(5)) - 140*sin(x(3)) - 53.85*sin(68.198);
];
end

  2 Comments

Lubos Smolik
Lubos Smolik on 6 Apr 2020
Could you also provide your main script? It appears that there are 5 equations in your function.
Omar H.
Omar H. on 6 Apr 2020
thank you for commenting Lubos smolik
i'm a new user and i'm still learning.
i'm trying to solve a problem in one of my classes there are 5 unknowns and 4 equations
r2cos(x1) - r3cos(x2) - r4cos(x3) - r1cos(x10)
r2sin(x1) - r3sin(x2) - r4sin(x3) - r1sin(x10)
r5cos(x4) - r6cos(x5) - r4cos(x3) - r7cos(x11)
r5sin(x4) - r6sin(x5) - r4sin(x3) - r7sin(x11)
Where r2=130 r3=3.7 r4=140 r1=146.4 x10=172.15 r5=45 r6=70 r7=53.85 x11=68.198
and a fifth one between
x(4) = x(2) + 135

Sign in to comment.

Answers (1)

darova
darova on 6 Apr 2020
It's because of the way you concantenate your equations
Example of two different declarations
[1 - 2]
ans =
-1
[1 -2]
ans =
1 -2
Better practice would be:
F = zeros(5,1);
F(1) = x(4) -135 +x(2);
F(2) = 130*cos(x(1)) - 31.7*cos(x(2)) - 140*cos(x(3)) - 146.4*cos(172.15);

  0 Comments

Sign in to comment.

Sign in to answer this question.


Translated by