How to solve differential equation of 3 order analytically
1 次查看(过去 30 天)
显示 更早的评论
I would like to solve a system of differential equaions
x''[t] == -a0*(a1 - b*z'[t])*cos[w*t], x[to] == 0, x'[to] == 0
z''[t] == -a0*b*x'[t]*cos[w*t], z[to] == 0, z'[to] == 0
It reduces to a third order equation
z'''[t] == a*(1-c*z'[t])*cos^2[w*t]-tan(w*t)*w*z''[t], z[to] == 0, z'[to] == 0
syms u(x) a c w d
Du = diff(u, x);
D2u = diff(u, x, 2);
u(x) = dsolve(diff(u, x, 3) == a*(1-c*Du)*(cos(x))^2-tan(x)*d*D2u, u(to) == 0, Du(to) == 0)
Does not give solution. How to solve it in steps, maybe first for z'?
0 个评论
回答(1 个)
Star Strider
2016-7-9
I would keep it as the original system (and change ‘to’ to 0):
syms x(t) z(t) a0 a1 b w
Dz = diff(z);
D2z = diff(z,2);
Dx = diff(x);
D2x = diff(x,2);
Eq1 = D2x == -a0 * (a1 - b*Dz) * cos(w*t);
Eq2 = D2z == -a0 * b * Dx * cos(w*t);
Soln = dsolve(Eq1, Eq2, x(0) == 0, Dx(0) == 0, z(0) == 0, Dz(0) == 0);
X = Soln.x;
Z = Soln.z;
X = simplify(X, 'steps', 20)
Z = simplify(Z, 'steps', 20)
This gives you two ‘solutions’ involving integrals, that it transformed with dummy variable ‘y’:
X =
-(a1*int(sin((a0*b*sin(w*y))/w), y, 0, t))/b
Z =
-(a1*int(exp(-(a0*b*sin(w*y)*1i)/w)*(exp((a0*b*sin(w*y)*1i)/w) - 1)^2, y, 0, t))/(2*b)
This is likely as close as you can get to an analytic solution.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Quadratic Programming and Cone Programming 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!