Bonjour et merci pour ce forum, j'ai déjà pas mal avancé en lisant quelques posts.
Je fais appel à votre bon coeur pour m'aider à résoudre mon problème de programmation.
Je débute dans scilab et je fais face à des problèmes insondables pour moi. Mon exercice consiste à afficher la valeur d'un dérivé financier (un call).
En fait je veux remplir une matrice qui me permet d'obtenir la valeur d'une variable au temps suivant. Je l'ai rempli plutôt niaisement (peut être trop) et donc scilab se fache.
voila le bout de programme pour remplir cette matrice:
L'erreur serait à la ligne 10 ( A(i,i+1)=mu). Moi pas comprendreCode:function spA=matriceA(nbpointsx,sigma,dx,dt,nbpointsx,r) A=zeros(nbpointsx,nbpointsx); alpha=1+dt/(dx*dx)*(sigma2/2-(r-sigma2/2)*dx-r*dx*dx); mu=(dt/(dx*dx))(-sigma2+(r-sigma2/2)*dx); omega=dt/(dx*dx)*sigma2/2; for i=1:nbpointsx-2 A(i,i)=alpha; A(i,i+1)=mu; A(i,i+2)=omega; end A(nbpointsx,nbpointsx)=(1+sigma2*dt/2/dx/dx+(r-sigma2/2)*dt/dx-r*dt); A(nbpointsx-1,nbpointsx-1)=A(nbpointsx,nbpointsx); A(nbpointsx,nbpointsx-1)=-sigma2*dt/dx/dx-dt/dx*(r-sigma2/2); A(nbpointsx-1,nbpointsx-2)=A(nbpointsx,nbpointsx-1); A(nbpointsx,nbpointsx-2)=dt/dx/dx*sigma2/2; A(nbpointsx-1,nbpointsx-3)=A(nbpointsx,nbpointsx-2); spA=sparse(A); endfunction
Merci pour votre attention.
-----