Solve system of differential equations

4 ビュー (過去 30 日間)
Yokuna
Yokuna 2022 年 5 月 16 日
コメント済み: Torsten 2022 年 5 月 16 日
I am facing problem in solving the differential equation
is a vector () as shown in code and is also a vector (). x11=[x1,y1]. I want to solve , where represents derivative with respect to time. Can any one help me to find out x11 vs time. (Note and x11 are the same.) (Preferably use fsolve as I tried using it).
close all
clear all
clc
x01=-5;y01=-7;
x0=[x01,y01]';
beta=25;
syms x1 y1 t
x11=[x1,y1]';
c1=(1/2)*(x1-i*sin(t))^2+(3/2)*(y1-i*cos(t))^2;
row=100*exp(0.1*t);
g1=y1-x1-cos(t);
L1=c1-(1/row)*log(1-row*g1);
grad1 = gradient(L1,x11');
hess1 = hessian(L1,x11');
phi1=-(hess1)^(-1)*(grad1+diff(grad1,t));
u1=-beta*(hess1)^(-1)*x11+phi1
u1 = 
  2 件のコメント
Torsten
Torsten 2022 年 5 月 16 日
u1 is a 2x2 matrix, x11 is a 2x1 vector.
What do you mean by
x11dot = u1
?
Maybe you mean
x11dot = u1*x1
?
Yokuna
Yokuna 2022 年 5 月 16 日
Thanks for pointing out, I have corrected the question.

サインインしてコメントする。

採用された回答

Torsten
Torsten 2022 年 5 月 16 日
x01=-5;y01=-7;
x0=[x01,y01]';
beta=25;
syms x1 y1 t
x11=[x1,y1]';
c1=(1/2)*(x1-i*sin(t))^2+(3/2)*(y1-i*cos(t))^2;
row=100*exp(0.1*t);
g1=y1-x1-cos(t);
L1=c1-(1/row)*log(1-row*g1);
grad1 = gradient(L1,x11');
hess1 = hessian(L1,x11');
phi1=-(hess1)^(-1)*(grad1+diff(grad1,t));
u1=-beta*(hess1)^(-1)*x11+phi1
fun = matlabFunction(u1,'Vars',{t,x1,y1})
fun = @(t,y)fun(t,x1,y1);
y0 = [x01,y01];
tspan = [0 1]
[T,Y] = ode45(fun,tspan,y0)
plot(T,[real(Y),imag(Y)])
  2 件のコメント
Yokuna
Yokuna 2022 年 5 月 16 日
It gives error solving it through ode45, as the inputs needs to be floats.
Torsten
Torsten 2022 年 5 月 16 日
Replace
fun = @(t,y)fun(t,x1,y1);
by
fun = @(t,y)fun(t,y(1),y(2));

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSymbolic Math Toolbox についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by