필터 지우기
필터 지우기

Array indexing multiple equations

조회 수: 3 (최근 30일)
Ezgi
Ezgi 2014년 4월 1일
댓글: Ezgi 2014년 4월 2일
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?
  댓글 수: 1
Azzi Abdelmalek
Azzi Abdelmalek 2014년 4월 1일
This is not a differential equation

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

채택된 답변

Andrew Sykes
Andrew Sykes 2014년 4월 1일
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
Ezgi
Ezgi 2014년 4월 2일
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?

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

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by