找回密码
 注册
Simdroid-非首页
查看: 170|回复: 7

【讨论】请教如何在matlab中实现对收敛数列进行N到无穷大的求和?

[复制链接]
发表于 2004-4-11 10:44:56 | 显示全部楼层 |阅读模式 来自 四川成都
有没有函数可以直接利用?
发表于 2004-4-11 11:34:20 | 显示全部楼层 来自 天津

回复: 【讨论】请教如何在matlab中实现零到无穷大的求和?

Simdroid开发平台
sum可以求和,0到无穷大的和就是无穷大,这个就不用求了:D。
 楼主| 发表于 2004-4-11 13:01:50 | 显示全部楼层 来自 四川成都

回复: 【讨论】请教如何在matlab中实现零到无穷大的求和?

楼上误解我的意思了,我所讲的是对诸于此类的数列 1/[n*(n+1)] 进行求和,其中n取1到无穷大。
  
sum只能对有限长度的向量和矩阵求和
发表于 2004-4-11 22:08:37 | 显示全部楼层 来自 新加坡

回复: 【讨论】请教如何在matlab中实现对收敛数列进行N到无穷大的求和?

我觉得SCIE说到了一个值得我们重视的问题:那就是,在做数值计算之前或当中,应该做必要的解析分析。
  
既然你知道这是个收敛的级数,那么简单的解析分析可能给你一个简洁的公式。
  
或者你就像用数字的方法,也是可以的,因为我们知道数值计算不是精确的,就像我们以前曾经讨论过的 1/3 * 3 =/= 1.
  
所以我们可以在可以容忍的精度范围内获得你需要的解:

  1. n0=1000; % 先设一个很大的n0作为n
  2. while(还没有达到你的要求)
  3.     计算n=n0时的那个sum
  4.     计算n=2*n0时的那个sum
  5.     计算上面两个sum的差值的绝对值
  6.     if(该绝对值 < 你想要的结果)
  7.         跳出循环,结束计算
  8.     else
  9.         n0=2*n0;
  10.         %接着进行计算
  11.     end
  12. end
复制代码

[ 本帖最后由 bainhome 于 2007-5-29 20:14 编辑 ]
发表于 2007-5-29 20:00:02 | 显示全部楼层 来自 黑龙江哈尔滨
原帖由 taohe 于 2004-4-11 22:08 发表
我觉得SCIE说到了一个值得我们重视的问题:那就是,在做数值计算之前或当中,应该做必要的解析分析。
  
既然你知道这是个收敛的级数,那么简单的解析分析可能给你一个简洁的公式。
  
或者你就像用数字的方 ...



这位仁兄说的是,如果能简易的求出公式可能也就不需要求和了
问题是,假如,我要做傅立叶级数求和,不知如何解决呢?
回复 不支持

使用道具 举报

发表于 2007-5-30 11:08:27 | 显示全部楼层 来自 美国
All guys here must have leaned calculus.  According to the definition of "Limit" and "Convergence", we know that the cumulative sum can represent the infinite sum up to an error, which we can neglect when we have added sufficient large number of items. This is the fundamental reason to do things numerically.  To work on functions, you may need to consider "Uniformly Convergence" to determine the least number of items to perform summation.

If you don't want to do those analytical work, you may try to use as many items as possible.  Or you can have your own way to convince yourself that your result is close to the "real" result.

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-16 19:01:39 | 显示全部楼层 来自 北京西城
4# taohe


>> 1/3*3

ans =

     1
回复 不支持

使用道具 举报

发表于 2010-9-16 20:55:27 | 显示全部楼层 来自 四川成都
7# mallory
这可能是原来老版本的一个问题吧,taohe的意思很明显,因为/与*是相同运算级别的,那么当两个并立的时候就只能从左到右计算,这样就会有先算1/3=0.3333333333333...,再乘以3后就只有0.9999999999999...了。这样就会有一个谬论:1/3*3=/=1。这是计算机运算精度误差所致(应属舍入误差),其实现在很多数值计算中都有这个问题。

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 19:27 , Processed in 0.040814 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表