MATLAB Answers

How to integrate this function using ode23?

1 view (last 30 days)
Anshuman S
Anshuman S on 14 Mar 2020
Commented: Ameer Hamza on 14 Mar 2020
The given function is as follows:
I've written the following code:
clc
clear all
tspan = [0 10];
y0 = 0;
%[t,y] = ode23(@(t,y) 2*t, tspan, y0);
Minc = 67;
Mp = 12;
dfe = 7200;
din = 4040;
Dp = 5e-5;
Cl = 0.045;
Cleq = 0.005;
z = (Minc/(100*Mp))*(dfe/din)*Dp*(Cl - Cleq) ;
disp( z)
[t,y] = ode23(@(t,y) (1/y)*(Minc/(100*Mp))*(dfe/din)*Dp*(Cl - Cleq), tspan, y0);
plot(t,y,'-o');

  8 Comments

Show 5 older comments
Anshuman S
Anshuman S on 14 Mar 2020
Oh, my bad!
It was supposed to be a non-zero intial condition! As rightly stated by you, it's the property of the differential equation itself!
Anshuman S
Anshuman S on 14 Mar 2020
But why tspan = [0.5 10], why not start from 0
tspan = [0 10]
Ameer Hamza
Ameer Hamza on 14 Mar 2020
I was trying different values and this is the one I pasted here. This following one works too
tspan = [1e-308 10];

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 14 Mar 2020
Although I couldn't figure out the actual cause of this issue, the error is caused by setting the initial condition to zero. It can be resolved by giving a tiny value to the initial condition. For example,
y0 = 1e-308; % minimum possible exponent for double

  0 Comments

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!