[已答复] 求助MATLAB编程问题

[复制链接]
wangli0113 发表于 2009-9-11 14:26:51
对q(j)*e(k-j)求和(j=0,1,2,...k)其中q(j)=[1-(1+gama)/j]*q(j-1)

10 条回复


yuthreestone 发表于 2009-9-11 15:51:40
初值是什么呢?

wangli0113 发表于 2009-9-11 16:48:58
不好意思忘写了,q(0)=1

yuthreestone 发表于 2009-9-11 16:51:02
e和gamma分别指的是什么呢

wangli0113 发表于 2009-9-11 16:51:21
e是一个误差表示 初值应该是0

ljelly 发表于 2009-9-11 16:51:57
gama自己来选定范围吗

wangli0113 发表于 2009-9-11 16:52:07
gama就是一个任意的常数

yuthreestone 发表于 2009-9-11 17:10:44
这样可以吗?
add_sum.m

  1. function y=add_sum()
  2. gama=input('Please input gama:');
  3. k=input('Please input k:');
  4. q=zeros(1,k+1);
  5. e=zeros(1,k+1);
  6. q(1)=1;
  7. e(1)=0;
  8. y=0;
  9. for i=2:k+1
  10.     q(i)=(1-(1+gama)/(i-1))*q(i-1);
  11.     e(i)=q(i)-q(i-1);
  12. end
  13. q
  14. e=e(end:-1:1)
  15. y=sum(q.*e);
  16. end
复制代码


result:

  1. y=add_sum
  2. Please input gama:0.5
  3. Please input k:6
  4. q =
  5.     1.0000   -0.5000   -0.1250   -0.0625   -0.0391   -0.0273   -0.0205

  6. e =
  7.     0.0068    0.0117    0.0234    0.0625    0.3750   -1.5000         0

  8. y =
  9.     0.0205
复制代码

xyong1986 发表于 2009-9-11 21:44:43

问达人

题目是(1+gama)/i),为什么却:( 写成(1+gama)/(i-1))?达人指点哈!

yuthreestone 发表于 2009-9-12 09:29:08
因为i是从2开始的,在matlab中数组索引最小是1,不是0。所以得往后递推一个

wangli0113 发表于 2009-9-12 09:55:20

回复 8# yuthreestone 的帖子

HOHO~~太谢谢了!!!:lol :victory:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表