Effacer les filtres
Effacer les filtres

How to solve ODE match problem ?

1 vue (au cours des 30 derniers jours)
Victor Kang
Victor Kang le 12 Sep 2017
Commenté : Victor Kang le 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.

Réponse acceptée

Walter Roberson
Walter Roberson le 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 commentaire
Victor Kang
Victor Kang le 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 数学 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!