声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2789|回复: 3

[编程技巧] 求助:MATLAB进行级数运算需要高精度比如e-10,运行则没有结果……该怎么处理呢???

[复制链接]
发表于 2008-11-29 22:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
:@L
进行简单的级数运算;
如果是低精度比如10的-4次     (计算量为千的数量级)   还可以运行得到结果;
但是到了高精度比如10的-10次 (计算量为千万数量级) , 那根本运行不下去。

有解决的方法么???或者要改变算法?简单的级数运算又该怎么改进算法呢???


以上问题求教高人,不胜感激!!!

[ 本帖最后由 yangfanxing__ 于 2008-11-30 08:56 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-11-30 21:50 | 显示全部楼层
不太确定楼主的问题! matlab的eps=10^-16?
建议楼主列出程序, 如此或许别人亦可试试!
 楼主| 发表于 2008-12-1 21:01 | 显示全部楼层

补充:

依照精度来判别!!!
比方说要算1/(n^2)的和
先确定精度=0.001,再来计算
基本方式如下:
clc;clear;
s=0;
e=1;
n=1;
while e>=000.1
ss=s;
s=s+1/(n^2)
n=n+1;
e=s-ss;
end
e
这是可以计算的!

但是如果确定精度= 0.000000001(假设这样)
那么matlab就需要计算千万次这样子——结果是等半天仍不见输出!~~~
这个问题怎么解决呢???:handshake
发表于 2008-12-2 08:32 | 显示全部楼层
我试过了, 没报错! n=31624即收敛了!

楼主的写法, 我不习惯, 请参考我写的
n=1; e=1; s=0;
while e>10^-9, e=1/(n^2); s=s+e; n=n+1, end

也试过e>10^-14, 没报错! 但的确要等些时间!
但我想这是正常的, loop上千万次当然需时间, 除非能精进算法!

[ 本帖最后由 ChaChing 于 2008-12-2 10:12 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-2 21:29 , Processed in 0.095682 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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