Borrar filtros
Borrar filtros

How to solve ODE match problem ?

1 visualización (últimos 30 días)
Victor Kang
Victor Kang el 12 de Sept. de 2017
Comentada: Victor Kang el 13 de Sept. de 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.

Respuesta aceptada

Walter Roberson
Walter Roberson el 12 de Sept. de 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 comentario
Victor Kang
Victor Kang el 13 de Sept. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 数学 en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!