Indexing Error Using 'dsolve'

5 views (last 30 days)
Blake
Blake on 8 Mar 2024
Edited: Walter Roberson on 8 Mar 2024
I'm trying to write a script to solve the differential equation and then display the solution with a few different initial conditions.
This is the code so far:
syms t k1 k2 M A0 A
% Differential equation
dA_dt = 1 * (20 - A) - 3 * A;
% Solving for A(t) with different initial conditions
A_sol_0 = dsolve(dA_dt, A(0) == 1);
A_sol_2 = dsolve(dA_dt, A(0) == 2);
A_sol_5 = dsolve(dA_dt, A(0) == 5);
A_sol_10 = dsolve(dA_dt, A(0) == 10);
% Displaying the solutions
disp('Solution for A0 = 0:');
disp(A_sol_0);
disp('Solution for A0 = 2:');
disp(A_sol_2);
disp('Solution for A0 = 5:');
disp(A_sol_5);
disp('Solution for A0 = 10:');
disp(A_sol_10);
And the error I keep getting is:
Array indices must be positive integers or
logical values.
Error in indexing (line 968)
R_tilde = builtin('subsref',L_tilde,Idx);
Error in ************ (line 7)
A_sol_0 = dsolve(dA_dt, A(0) == 1);
Help would be GREATLY appreciated.

Answers (1)

VBBV
VBBV on 8 Mar 2024
Edited: VBBV on 8 Mar 2024
syms t k1 k2 M A0 A(t)
dA_dt = 1 * (20 - A) - 3 * diff(A,t) == 0;
% Solving for A(t) with different initial conditions
A_sol_0 = dsolve(dA_dt, A(0) == 0);
A_sol_2 = dsolve(dA_dt, A(0) == 2);
A_sol_5 = dsolve(dA_dt, A(0) == 5);
A_sol_10 = dsolve(dA_dt, A(0) == 10);
% Displaying the solutions
disp('Solution for A0 = 0:');
Solution for A0 = 0:
disp(A_sol_0);
disp('Solution for A0 = 2:');
Solution for A0 = 2:
disp(A_sol_2);
disp('Solution for A0 = 5:');
Solution for A0 = 5:
disp(A_sol_5);
disp('Solution for A0 = 10:');
Solution for A0 = 10:
disp(A_sol_10);
  1 Comment
VBBV
VBBV on 8 Mar 2024
dA_dt = 1 * (20 - A) - 3 * A;% this is not a differential equation

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!