Filter löschen
Filter löschen

How to solve ODE match problem ?

1 Ansicht (letzte 30 Tage)
Victor Kang
Victor Kang am 12 Sep. 2017
Kommentiert: Victor Kang am 13 Sep. 2017
my code is
global r;
y0=zeros(1,r^3);
t=[0,10];
[x,y]=ode23('diffusion',t,y0);
And the diffusion function is(I've simplified the code)
function [ c ] = diffusion(t,f)
global r;
for x=0:r-1
for y=0:r-1
for z=0:r-1
df(x*r*r+y*r+z+1)=f(x*r*r+y*r+z+1)*d;
end
end
end
c=df(:);
end
_Then the problem is
"错误使用 odearguments (line 90) Number of rows in exponent vector Alpha and volatility matrix Sigma must match.
出错 ode23 (line 114) odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
出错 dif (line 10) [x,y]=ode23('diffusion',t,y0);"
How to solve this problem? Thanks a lot. If you want, you can download all my code.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 12 Sep. 2017
The Finance diffusion class constructor https://www.mathworks.com/help/finance/diffusion_constructor.html is taking priority over your local diffusion function.
Have a look at https://www.mathworks.com/help/matlab/matlab_prog/function-precedence-order.html and see that @ class constructors are step 7 but functions in the current folder are step 9.
The easiest fix is to rename your diffusion function to something else.
  1 Kommentar
Victor Kang
Victor Kang am 13 Sep. 2017
Thanks! It is clearly that I've made a foolish mistake that my function's name is same as the diffusion tools. Without your help, I may wast more hours in it. Thanks a lot.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 数学 finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!