What is the role of [] in ode?

5 visualizzazioni (ultimi 30 giorni)
채원 이
채원 이 il 4 Apr 2022
Modificato: Stephen23 il 4 Mag 2022
Example1)
[t x] = ode45(@fun, tspan, c0,...)
I'm not sure what exactly is [t x] above. As I understand it, does ode represent t,x in [] by unpacking it? Is it exactly solving for x for t?
Example2)
[t x] = ode45(@fun,tspan,c0,...)
[t y] = ode45(@fun,tspan, c0,...)
Does having two odes as above mean solving for x and y? If a function is a function related to x and y (z=x+y), does ode represent the x and y values ​​for t?
  1 Commento
Stephen23
Stephen23 il 6 Apr 2022
Modificato: Stephen23 il 4 Mag 2022
"I'm not sure what exactly is [t x] above."
How to call functions with multiple output arguments:
"As I understand it, does ode represent t,x in [] by unpacking it?"
No, MATLAB does not have any concept of output "unpacking". MATLAB functions can return multple outputs: in the example you show, the function ODE45 two outputs. The names of the variables assigned to those outputs are irrelevant.

Accedi per commentare.

Risposte (1)

Sam Chak
Sam Chak il 4 Apr 2022
If the system is
,
then you can solve the ODEs as follows:
kp = 1;
kd = 2;
F = @(t, x) [x(2); ...
- kp*x(1) - kd*x(2)];
[t, x] = ode45(F, [0 10], [1, 0]);
plot(t, x)
The solver assigns the solution in the time-vector, t and the array.
  11 Commenti
Walter Roberson
Walter Roberson il 11 Apr 2022
Change
dydt(1) = D.*d2Cdz2(i) - u*dCdz(i) + F*(-y(1)-y(2));
to
dydt(i) = D.*d2Cdz2(i) - u*dCdz(i) + F*(-y(i-1)-y(i));
채원 이
채원 이 il 4 Mag 2022
Among the replies above, why is q(y1,y2) = - y(1) - y(2);

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by