How can I solve the coupled differential equation with variable coefficients?

4 次查看(过去 30 天)
I try to solve coupled differential equation in matlab. This is the code I was typed in matlab
syms u(t) v(t)
ode1 = diff(u) == v;
ode2 = diff(v) == ((5/sqrt(2))*exp((1-sqrt(2))*t)-(5/sqrt(2))*exp((1+sqrt(2))*t)+1)*u + (((5*(1-sqrt(2)))/sqrt(2))*exp((1-sqrt(2))*t)-((5*(1+sqrt(2)))/sqrt(2))*exp((1+sqrt(2))*t)+2)*v;
odes = [ode1; ode2]
cond1 = u(0) == 1;
cond2 = v(0) == 0;
conds = [cond1; cond2];
[uSol(t), vSol(t)] = dsolve(odes,conds)
In command window
Warning: Unable to find explicit solution.
> In dsolve (line 190)
In coupled (line 8)
Error using sym/subsindex (line 855)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and function body must be sym expression.
Error in coupled (line 8)
[uSol(t), vSol(t)] = dsolve(odes,conds)
Can someone help me with this error? Thank you.
  5 个评论
Vellapandi M Research Scholar
Thank you once again. I need solution in terms of t. But I get this.
Warning: Unable to find explicit solution.
> In dsolve (line 190)
In coupled (line 8)
uSol =
[ empty sym ]
vSol =
[ ]

请先登录,再进行评论。

采纳的回答

Dinesh Yadav
Dinesh Yadav 2020-1-22
Hi Vellapandi,
Continuing from David Goodmanson's comment you can solve it numerically. Below is the code for it.
tspan = [0 5];
y0=[1;0];
[uSol, vSol] = ode45(@(t,x) [x(1);((5/sqrt(2))*exp((1-sqrt(2))*t)-(5/sqrt(2))*exp((1+sqrt(2))*t)+1)*x(2) + (((5*(1-sqrt(2)))/sqrt(2))*exp((1-sqrt(2))*t)-((5*(1+sqrt(2)))/sqrt(2))*exp((1+sqrt(2))*t)+2)*x(1)],tspan,y0)
You can change the time limits as per your application.
You can refer to documentation link below to see how to solve system of differential equations.
Hope it helps.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Equation Solving 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by