Adding a vector in a system of differential equations

I have a system of odes to be solved. The problem is that one of the odes contains iapp, which is a vector (same size as the time vector) i have from experimental data.
[time,output]=ode113('DiffEquations',time,init);
with:
function [output] = DiffEquations(time,init)
% defining variables and constants ...
% output(1,1)=....
% output(2,1)=(....
output(3,1)=(-iNa-iK+iapp)/C;
end
How should i input this vector in the function?

Answers (1)

One way is to create a function handle to pass in the extra parameters. E.g.,
function [output] = DiffEquations(time,init,iapp) % <-- add iapp to the input argument list
Then in your calling code:
[time,output]=ode113(@(t,y)DiffEquations(t,y,iapp),time,init); % <-- function handle with iapp

4 Comments

Thank you! However, iapp is a vector and i'm getting this error:
Unable to perform assignment because the size of the left side is 1-by-1 and the
size of the right side is 100000-by-1.
Error in DiffEquations (line 118)
output(3,1)=(-iNa-iK+iapp)/C;
How do i add the value of iapp at the index corresponding to the index of the time vector at which this function is being computed?
This is telling you that your equation is wrong. If iapp is a vector, how can you possibly assign it to a scalar element of the derivative? You need to re-examine the equations you are simulating and compare it to the code you have written. Or post that for us to see so we can help you.
Sorry for the confusion, i am not explaining myself well. Basilly, i have two vectors of data, the time vector and an Iapp vector (of the same size). What I am trying to compute is the voltage vector ( output(3,1) in the system of odes ) , which can be computed as such : dv/dt=(-iNa-iK+iapp)/C. The first two terms are expressed as functions of time which i wrote above. The iapp term, however, i have as a vector and i don't know how i can add the value of iapp at each second to the corresponding voltage at the same time.
Sorry again for the confusion, and thank you for the help!
If you don't know, then that means you don't understand your own set of odes. Is iapp perhaps a time sequence of values that you would need to interpolate? Again, we are guessing here until you can post the odes for us to look at.

Sign in to comment.

Asked:

on 10 Mar 2020

Commented:

on 16 Mar 2020

Community Treasure Hunt

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

Start Hunting!