Basic ODE question

4 次查看(过去 30 天)
Seth
Seth 2011-3-4
So...it's been quite a while since I solved any systems of ODEs and I am admittedly very rusty. I am hoping there is a simple answer to this question:
I have a coupled system of ODEs:
dA/dc=-0.5*(2-v)*(1-v^2)/(1-v)
and
dv/dc=-1.5*(5-v)*(1-v^2)/(3-v)
Solve from c=[0 1]
Initial conditions: Ao=100, vo=0.5
How can I set this up in a Matlab function? Thanks for any advice!

采纳的回答

Matt Tearle
Matt Tearle 2011-3-5
  1. Write a function that defines the rate equations. The system should now look like z' = f(c,z), where z = [A;v]. Write your function file so that it takes c and a vector z as inputs, and returns a vector dz that represents the derivatives ([A';v'])
  2. Use ode45 to solve the system, giving a function handle to you function from step 2 as input, as well as the vector of start and end values for c and the initial conditions z0 = [A0;v0].
  3. Extract the components of the solution returned by ode45 to plot as a function of c (also returned by ode45). (If A and v are on the same scale, you could just do plot(c,z))
Your question is mainly about step 1. So write a function file
function dz = functionname(c,z)
dz = zeros(size(z));
% extract components of z (ie A & c)
% define dz(1) according to the equation for dA/dc
% define dz(2) according to the equation for dv/dc

更多回答(3 个)

Seth
Seth 2011-3-7
Solved the problem by simply decoupling and doing two independent ODE45 solves instead of treating as a system of equations. I understand this is not the best way - but worked fine for my problem.
Thanks Matt for the help.

SHOBHIT KUMAR
SHOBHIT KUMAR 2019-6-9
can we not just do this and find the solution from gtaph and get the answer?
sol=dsolve('Da=-0.5*(2-v)*(1-v^2)/(1-v)','a(0)=100','c');
ezplot(sol,[-2 2])
hold on;
s=dsolve('Dv=-1.5*(5-v)*(1-v^2)/(3-v)','v(0)=0.5','c');
ezplot(s,[-2 2])
Please answer

jagathi medempudi
jagathi medempudi 2020-8-27
What is the mat lab command for solving differential equation
Select one:
a. differentiation
b. dsolve
c. int
d. diff

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by