matlab exp 复数,matlab程序中没有复数却出现复数?在线求助~~!!

%求回归方程y=ax+b

Y = xlsread('4_1.xls');

%读取excel中2004年2月2日到2006年8月31日收盘价,得到列向量

int=[30 20 23 17 21 22 22 22 17 21 22 22 15 22 23 16 22 22 21 23 17 21 22 20 16 19 23 15 23 22 21];%每月投资时中间间隔的天数

%length(int)

x1= ones(1,30);%构造全1的行向量,在regress函数中用到

n=10000/(1+0.003);%每月最高买入额

q=0;%股数

m=0;%还未买进股票,平均成本为0

profit1=0;

ystart=1;

yend=30;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for i=1:length(int)

y = Y(ystart:1:yend);

x = [x1;(1+int(i)-30):1:(30+int(i)-30)]';

b = regress(y,x);

value = b(2)*(30+int(i))+b(1);%这个月15号在走势线上的值

pi = Y(30+ystart);%现在的股价

%pi_pre=value;%在走势线上的值

alpha = (pi-value)/value;

if alpha < 0 || i==1

k=0;

else

k=(n+q*pi-pi*sqrt((pi-m)*q))/(n*alpha);

end

current = n*(1-alpha*k);%这个月的资金进出情况

profit1=profit1+current;

m=(m*q+current)/(q+current/pi);

q=q+current/pi;

ystart=ystart+int(i);

yend=yend+int(i);

end

profit=(profit1-q*pi)/30;

这个题在循环过程中,q,m,current循环几次后就出现了复数,比如:current =

-2.0327e+004 -5.5969e+002i

而且就只有前几次是实数,后面都是复数....

为什么会这样啊?请帮忙看一下谢谢~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值