Array indexing multiple equations

3 views (last 30 days)
Ezgi
Ezgi on 1 Apr 2014
Commented: Ezgi on 2 Apr 2014
x1(i+1)=x1(i)+x2(i);
x3(i+1)=x3(i)+x4(i);
x5(i+1)=x5(i)+x6(i);
x2(i+1)=x2(i)+cos(x3(i))*x4(i+1)-x6(i+1);
x4(i+1)=x4(i);
x6(i+1)=x6(i)+cos(x5(i))*x2(i+1);
I came up with 6 equations for 6 variables. I have the equations above. x2(i+1) depends on x4(i+1) but that value is not calculated until x2(i+1) is calculated. How do I solve this problem do I need more equations?

Accepted Answer

Andrew Sykes
Andrew Sykes on 1 Apr 2014
You need to do some algebra on these equations before you solve them.
The variable x4 is a constant (x4(i+1) = x4(i) tells us this), so replace x4(i+1) -> x4(i) in the equation for x2(i+1) to give:
x2(i+1)=x2(i)+cos(x3(i))*x4(i)-x6(i+1); (*)
Now substitute x6(i+1)=x6(i)+cos(x5(i))*x2(i+1) into this equation (*) and solve for x2(i+1). This will give:
x2(i+1)=( x2(i)+cos(x3(i))*x4(i)-x6(i) )/( 1+cos(x5(i)) );
Finally, substitute x2(i+1)=( x2(i)+cos(x3(i))*x4(i)-x6(i) )/( 1+cos(x5(i)) ) into the equation for x6(i+1) to give
x6(i+1)=x6(i)+cos(x5(i))*( x2(i)+cos(x3(i))*x4(i)-x6(i) )/( 1+cos(x5(i)) );
Now you should be okay to solve this problem within a for-loop provided you have a known initial condition.
  1 Comment
Ezgi
Ezgi on 2 Apr 2014
Thank you for your answer. That really helped. If the system were like this;
x1(i+1)=x1(i)+x2(i); x3(i+1)=x3(i)+x4(i); x5(i+1)=x5(i)+x6(i);
x2(i+1)=x2(i)-1/(m0+m1+m2)*((1/2*m1*l1+m2*l1)*cos(x3(i))*x4(i+1)-(1/2*m2*l2*cos(x5(i)))*x6(i+1)-sigma0*x2(i)+(1/2*m1*l1+m2*l1)*x4(i)*sin(x3(i))*x4(i)-1/2*m2*l2*cos(x5(i))*x6(i)-F);
x4(i+1)=x4(i)-1/(J1+m2*l1^2)*((1/2*m1*l1+m2*l1)*cos(x3(i))*x2(i+1)-(1/2*m2*l1*l2*cos(x3(i)-x5(i)))*x6(i+1)-1/2*m1*l1*cos(x3(i))*x2(i)-(sigma1+sigma2)*x4(i)-(-sigma2-1/2*m2*l1*l2*x6(i)*sin(x3(i)-x5(i)))*x6(i)+(1/2*m1+m2)*g*l1*sin(x3(i)));
x6(i+1)=x6(i)-1/J2*(1/2*m2*l2*cos(x5(i))*x2(i+1)-1/2*m2*l1*l2*cos(x3(i)-x5(i))*x4(i+1)-1/2*m2*l2*cos(x5(i))*x2(i)-(-sigma2-1/2*m2*l1*l2*x6(i)*sin(x3(i)-x5(i)))*x4(i)-sigma2*x6(i)-1/2*m2*g*l2*sin(x5(i)));
Here, x2(i+1) depends on x4(i+1) and x6(i+1), x4(i+1) depends on x2(i+1) and x6(i+1), x6(i+1) depends on x2(i+1) and x4(i+1).How can I solve for x in this case?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!