wtt000
2011-01-10, 18:13
restart:
with(student): with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected
PayoffWaitCEEO:=proc(V,D,IT,dV,dD,sigV,sigD,rhoVD,T1,T2,qUP);
P:=(0.5*V)/D;
d:=dV-dD;
sig:=sqrt(sigV^2+sigD^2-2*rhoVD*sigV*sigD);
dT:=(T2-T1);
q:=evalf(IT/D);
f:=v->1/sqrt(2*Pi)*exp(-v^2/2);
N1:=(v)->int(f(t),t=-infinity..v);
h(w,p):=(1/(2*evalf(Pi)*sqrt(1-sqrt(T1/T2)^2)))*exp(-(w^2-2*sqrt(T1/T2)*w*p+p^2)/(2*(1-sqrt(T1/T2)^2)));
N2a:=(e,m)->evalf(Doubleint(h(w,p),w=-infinity..e,p=-infinity..m));
j(s,k):=(1/(2*evalf(Pi)*sqrt(1-sqrt((2*T1)/(T1+T2))^2)))*exp(-(s^2-2*sqrt((2*T1)/(T1+T2))*s*k+k^2)/(2*(1-sqrt((2*T1)/(T1+T2))^2)));
N2b:=(i1,n)->evalf(Doubleint(j(s,k),s=-infinity..i1,k=-infinity..n));
d1pp:=evalf((ln(J1*exp(-d*(T2-T1)))+(0.5*sig^2)*(T2-T1))/(sig*(sqrt(T2-T1))));
d2pp:=evalf((ln(J1*exp(-d*(T2-T1)))-(0.5*sig^2)*(T2-T1))/(sig*(sqrt(T2-T1))));
eq1:=J1*exp(-dV*(T2-T1))*N1(d1pp)-exp(-dD*(T2-T1))*N1(d2pp)-(q/qUP)=0:
P2:=fsolve(eq1,J1):
d1pca:=evalf((ln((P/P2)*exp(-d*T1))+T1*(sig^2/2))/(sig*sqrt(T1)));
d2pca:=evalf((ln((P/P2)*exp(-d*T1))-T1*(sig^2/2))/(sig*sqrt(T1)));
d1:=evalf((ln((P)*exp(-d*T2))+(0.5*sig^2)*T2)/(sig*sqrt(T2)));
d2:=evalf((ln((P)*exp(-d*T2))-(0.5*sig^2)*T2)/(sig*sqrt(T2)));
CA:=qUP*0.5*V*exp(-dV*T2)*N2a(d1pca,d1)-qUP*D*exp(-dD*T2)*N2a(d2pca,d2)-IT*exp(-dD*T1)*N1(d2pca):
print('Prezzo_Critico_CEEO1',P2); print('PayoffWaiting',CA);
end;
输入PayoffWaitCEEO(1000000,120000,84000,0.15,0,0.90,0.23,0.15,0.5,3,0.40);运行很久也不出结果,谢谢各位
with(student): with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected
PayoffWaitCEEO:=proc(V,D,IT,dV,dD,sigV,sigD,rhoVD,T1,T2,qUP);
P:=(0.5*V)/D;
d:=dV-dD;
sig:=sqrt(sigV^2+sigD^2-2*rhoVD*sigV*sigD);
dT:=(T2-T1);
q:=evalf(IT/D);
f:=v->1/sqrt(2*Pi)*exp(-v^2/2);
N1:=(v)->int(f(t),t=-infinity..v);
h(w,p):=(1/(2*evalf(Pi)*sqrt(1-sqrt(T1/T2)^2)))*exp(-(w^2-2*sqrt(T1/T2)*w*p+p^2)/(2*(1-sqrt(T1/T2)^2)));
N2a:=(e,m)->evalf(Doubleint(h(w,p),w=-infinity..e,p=-infinity..m));
j(s,k):=(1/(2*evalf(Pi)*sqrt(1-sqrt((2*T1)/(T1+T2))^2)))*exp(-(s^2-2*sqrt((2*T1)/(T1+T2))*s*k+k^2)/(2*(1-sqrt((2*T1)/(T1+T2))^2)));
N2b:=(i1,n)->evalf(Doubleint(j(s,k),s=-infinity..i1,k=-infinity..n));
d1pp:=evalf((ln(J1*exp(-d*(T2-T1)))+(0.5*sig^2)*(T2-T1))/(sig*(sqrt(T2-T1))));
d2pp:=evalf((ln(J1*exp(-d*(T2-T1)))-(0.5*sig^2)*(T2-T1))/(sig*(sqrt(T2-T1))));
eq1:=J1*exp(-dV*(T2-T1))*N1(d1pp)-exp(-dD*(T2-T1))*N1(d2pp)-(q/qUP)=0:
P2:=fsolve(eq1,J1):
d1pca:=evalf((ln((P/P2)*exp(-d*T1))+T1*(sig^2/2))/(sig*sqrt(T1)));
d2pca:=evalf((ln((P/P2)*exp(-d*T1))-T1*(sig^2/2))/(sig*sqrt(T1)));
d1:=evalf((ln((P)*exp(-d*T2))+(0.5*sig^2)*T2)/(sig*sqrt(T2)));
d2:=evalf((ln((P)*exp(-d*T2))-(0.5*sig^2)*T2)/(sig*sqrt(T2)));
CA:=qUP*0.5*V*exp(-dV*T2)*N2a(d1pca,d1)-qUP*D*exp(-dD*T2)*N2a(d2pca,d2)-IT*exp(-dD*T1)*N1(d2pca):
print('Prezzo_Critico_CEEO1',P2); print('PayoffWaiting',CA);
end;
输入PayoffWaitCEEO(1000000,120000,84000,0.15,0,0.90,0.23,0.15,0.5,3,0.40);运行很久也不出结果,谢谢各位