Hello, wanted to solve system of equations, but cant solve and fsolve don't give answers. Solve:
clcclear allsyms t tf x(t) x1(t) x1_(t) x2(t) x2_(t) L1(t) L2(t) L1_(t) L2_(t) u(t) u_(t) m k c f x1x2(t) S(t) eq_u(t) L1L2(t) eq_u_C(t) x_C(t) d_H_tf_C(t);F1=subs(x2_+c/m*x2+k/m*x1,[c k m],[2 10 1])H=subs(u^2+L1*x2+L2*(-k/m*x1-c/m*x2+u),[c k m],[2 10 1])H1=subs(H,[x1_ x2_ L1_ L2_],[diff(x1,t) diff(x2,t) diff(L1,t) diff(L2,t)])F=subs(F1,[x1 x1_ x2 x2_],[x diff(x,t) diff(x,t) diff(x,t,2)])S=0d_H_x1=subs(subs(diff(subs(H,x1(t),f),f),f,x1(t)),[x1 x1_ x2 x2_],[x diff(x,t) diff(x,t) diff(x,t,2)])d_H_x2=subs(subs(diff(subs(H,x2(t),f),f),f,x1(t)),[x1 x1_ x2 x2_],[x diff(x,t) diff(x,t) diff(x,t,2)])d_H_u=subs(subs(diff(subs(H,u(t),f),f),f,u(t)),[x1 x1_ x2 x2_],[x diff(x,t) diff(x,t) diff(x,t,2)])d_H_tf(t)=subs(diff(S,t)+H,[x1 x1_ x2 x2_],[x diff(x,t) diff(x,t) diff(x,t,2)])eq_u(t)=solve(subs(d_H_u,u,f)==0,f)L1L2=dsolve([d_H_x1==-diff(L1,t) d_H_x2==-diff(L2,t)])eq_u_C(t)=subs(eq_u,[L1 L2],[L1L2.L1 L1L2.L2])x_C(t)=dsolve(F==eq_u_C)d_H_tf_C(t)=subs(d_H_tf,[u L1 L2],[eq_u_C L1L2.L1 L1L2.L2])C1234=solve([d_H_tf_C(tf)==0 x_C(0)==3 x_C(tf)==3 subs(diff(x_C,t),t,0)==0 subs(diff(x_C,t),t,tf)==0])
solve: Unable to find explicit solution.
Also trying fsolve:
function F = myfun(x)F=[((x(1)*cos(3*x(5))*exp(x(5)))/2 - (x(2)*sin(3*x(5))*exp(x(5)))/2)^2 + (x(1)*(cos(3*x(5))*exp(x(5)) + 3*sin(3*x(5))*exp(x(5))) + x(2)*(3*cos(3*x(5))*exp(x(5)) - sin(3*x(5))*exp(x(5))))*diff(x(x(5)), x(5)) - (x(1)*cos(3*x(5))*exp(x(5)) - x(2)*sin(3*x(5))*exp(x(5)))*(10*x(x(5)) + 2*diff(x(x(5)), x(5)) + (x(1)*cos(3*x(5))*exp(x(5)))/2 - (x(2)*sin(3*x(5))*exp(x(5)))/2);x(3) - (3*x(2))/80 - x(1)/80 - 3;x(3)*cos(3*x(5))*exp(-x(5)) - (sin(3*x(5))*exp(x(5))*(10*x(1) + x(1)*cos(6*x(5)) + 3*x(2)*cos(6*x(5)) + 3*x(1)*sin(6*x(5)) - x(2)*sin(6*x(5))))/240 - x(4)*sin(3*x(5))*exp(-x(5)) + (cos(3*x(5))*exp(x(5))*(x(2)*cos(6*x(5)) - 3*x(1)*cos(6*x(5)) - 10*x(2) + x(1)*sin(6*x(5)) + 3*x(2)*sin(6*x(5))))/240 - 3;- x(1)/8 - x(3) - 3*x(4) ;x(4)*sin(3*x(5))*exp(-x(5)) - (sin(3*x(5))*exp(x(5))*(x(2)*cos(6*x(5)) - 3*x(1)*cos(6*x(5)) - 10*x(2) + x(1)*sin(6*x(5)) + 3*x(2)*sin(6*x(5))))/80 - x(3)*cos(3*x(5))*exp(-x(5)) - 3*x(4)*cos(3*x(5))*exp(-x(5)) - 3*x(3)*sin(3*x(5))*exp(-x(5)) - (sin(3*x(5))*exp(x(5))*(10*x(1) + x(1)*cos(6*x(5)) + 3*x(2)*cos(6*x(5)) + 3*x(1)*sin(6*x(5)) - x(2)*sin(6*x(5))))/240 + (cos(3*x(5))*exp(x(5))*(6*x(1)*cos(6*x(5)) + 18*x(2)*cos(6*x(5)) + 18*x(1)*sin(6*x(5)) - 6*x(2)*sin(6*x(5))))/240 + (sin(3*x(5))*exp(x(5))*(6*x(2)*cos(6*x(5)) - 18*x(1)*cos(6*x(5)) + 6*x(1)*sin(6*x(5)) + 18*x(2)*sin(6*x(5))))/240 - (cos(3*x(5))*exp(x(5))*(10*x(1) + x(1)*cos(6*x(5)) + 3*x(2)*cos(6*x(5)) + 3*x(1)*sin(6*x(5)) - x(2)*sin(6*x(5))))/80 + (cos(3*x(5))*exp(x(5))*(x(2)*cos(6*x(5)) - 3*x(1)*cos(6*x(5)) - 10*x(2) + x(1)*sin(6*x(5)) + 3*x(2)*sin(6*x(5))))/240 ]end
with
x0=[2;2;2;2;2]options = optimoptions('fsolve','Display','iter');[x,fval]=fsolve(@(x) myfun(x),x0,options)
but gets errors:
Array indices must be positive integers or logical values.Error in myfun (line 9)F=[((x(1)*cos(3*x(5))*exp(x(5)))/2 - (x(2)*sin(3*x(5))*exp(x(5)))/2)^2 + (x(1)*(cos(3*x(5))*exp(x(5)) + 3*sin(3*x(5))*exp(x(5))) + x(2)*(3*cos(3*x(5))*exp(x(5)) - sin(3*x(5))*exp(x(5))))*diff(x(x(5)), x(5)) - (x(1)*cos(3*x(5))*exp(x(5)) - x(2)*sin(3*x(5))*exp(x(5)))*(10*x(x(5)) + 2*diff(x(x(5)), x(5)) + (x(1)*cos(3*x(5))*exp(x(5)))/2 - (x(2)*sin(3*x(5))*exp(x(5)))/2);x(3) - (3*x(2))/80 - x(1)/80 - 3;x(3)*cos(3*x(5))*exp(-x(5)) - (sin(3*x(5))*exp(x(5))*(10*x(1) + x(1)*cos(6*x(5)) + 3*x(2)*cos(6*x(5)) + 3*x(1)*sin(6*x(5)) - x(2)*sin(6*x(5))))/240 - x(4)*sin(3*x(5))*exp(-x(5)) + (cos(3*x(5))*exp(x(5))*(x(2)*cos(6*x(5)) - 3*x(1)*cos(6*x(5)) - 10*x(2) + x(1)*sin(6*x(5)) + 3*x(2)*sin(6*x(5))))/240 - 3;- x(1)/8 - x(3) - 3*x(4) ;x(4)*sin(3*x(5))*exp(-x(5)) - (sin(3*x(5))*exp(x(5))*(x(2)*cos(6*x(5)) - 3*x(1)*cos(6*x(5)) - 10*x(2) + x(1)*sin(6*x(5)) + 3*x(2)*sin(6*x(5))))/80 - x(3)*cos(3*x(5))*exp(-x(5)) - 3*x(4)*cos(3*x(5))*exp(-x(5)) - 3*x(3)*sin(3*x(5))*exp(-x(5)) - (sin(3*x(5))*exp(x(5))*(10*x(1) + x(1)*cos(6*x(5)) + 3*x(2)*cos(6*x(5)) + 3*x(1)*sin(6*x(5)) - x(2)*sin(6*x(5))))/240 + (cos(3*x(5))*exp(x(5))*(6*x(1)*cos(6*x(5)) + 18*x(2)*cos(6*x(5)) + 18*x(1)*sin(6*x(5)) - 6*x(2)*sin(6*x(5))))/240 + (sin(3*x(5))*exp(x(5))*(6*x(2)*cos(6*x(5)) - 18*x(1)*cos(6*x(5)) + 6*x(1)*sin(6*x(5)) + 18*x(2)*sin(6*x(5))))/240 - (cos(3*x(5))*exp(x(5))*(10*x(1) + x(1)*cos(6*x(5)) + 3*x(2)*cos(6*x(5)) + 3*x(1)*sin(6*x(5)) - x(2)*sin(6*x(5))))/80 + (cos(3*x(5))*exp(x(5))*(x(2)*cos(6*x(5)) - 3*x(1)*cos(6*x(5)) - 10*x(2) + x(1)*sin(6*x(5)) + 3*x(2)*sin(6*x(5))))/240 ]Error in cw7>@(x)myfun(x)Error in finDiffEvalAndChkErrError in finitedifferencesError in computeFinDiffGradAndJacError in levenbergMarquardt (line 100) [JAC,~,~,numEvals,evalOK] = computeFinDiffGradAndJac(XOUT,funfcn,confcn,costFun, ...Error in fsolve (line 417) levenbergMarquardt(funfcn,x,verbosity,options,defaultopt,f,JAC,caller, ...Error in cw7 (line 28)[x,fval]=fsolve(@(x) myfun(x),x0,options)
Best Answer