MATLAB Answers

How to correct this?

9 views (last 30 days)
Kyle Saylon
Kyle Saylon on 4 Jun 2018
Commented: Greg on 4 Jun 2018
tspan = [55. 121.]; % Range for the independent variable
y0 = [467.992; 0.0423866]; % Initial values for the dependent variables
function dYfuncvecdt = ODEfun(t,Yfuncvec);
T = Yfuncvec(1);
X = Yfuncvec(2);
NCp = 2504;
V = 3.265 + 1.854;
Nao = 9.0448;
UA = 35.83;
dH = -590000;
Nbo = 33;
k = 0.00017 * exp(11273 / 1.987 * (1 / 461 - (1 / T)));
Qr = UA * (T - 298);
Theata = Nbo / Nao;
ra = 0 - (k * Nao ^ 2 * (1 - X) * (Theata - (2 * X)) / (V ^ 2));
rate = 0 - ra;
Qg = ra * V * dH;
dTdt = (Qg - Qr) / NCp;
dXdt = (0 - ra) * V / Nao;
dYfuncvecdt = [dTdt; dXdt];
function dYfuncvecdt = ODEfun(t,Yfuncvec);
Error: Function definitions are not permitted in this context.

  1 Comment

Kyle Saylon
Kyle Saylon on 4 Jun 2018
I exported this solution from polymath. They said that it can be copied directly after exporting.

Sign in to comment.

Answers (1)

Greg
Greg on 4 Jun 2018
Edited: Greg on 4 Jun 2018
If the first non-comment line is not a function declaration (or a few other options such as classdef), the file is a script. Embedding functions in scripts was introduced in R2016b.
  • If you're running pre-R2016b, you can't do it, period.
  • If you're running R2016b or newer, you have to close each function with an end.

  3 Comments

Greg
Greg on 4 Jun 2018
Also, you can't name them both ODEfun.
Kyle Saylon
Kyle Saylon on 4 Jun 2018
I'm running R2017a. I just exported this from polymath and they said that the code can be copied directly to the matlab editor.
Greg
Greg on 4 Jun 2018
No idea what polymath is, but I rarely find they said… to be reliable.
As Aakash asked, what exactly are you trying to do? Can you link to or upload this polymath reference?

Sign in to comment.

Sign in to answer this question.