24小时热门版块排行榜    

查看: 3365  |  回复: 15

longmaomao

铁虫 (初入文坛)

[求助] matlab数值计算时迭代项分母为零的时候怎么办?

matlaB编程的时候如果迭代项出现:
cos(u_(i)^(j+1))-cos(u_(i)^(j))/(u_(i)^(j+1))-u_(i)^(j)))怎么办?求助!!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

yongcailiu

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
这种情况要特殊考虑和处理,可以考虑当分母绝对值小于某个很小很小的正数(在C里一般是1e-8,matlab里面不清楚设置多大合理),进行其他的处理。
2楼2013-09-26 09:02:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

山海一色

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
在分母为零时略过,踢出运算即用一个很小包含零的小区间保护起来不运算。
3楼2013-09-26 09:08:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
7楼: Originally posted by longmaomao at 2013-09-26 11:24:30
我们迭代终止条件为1e-12这很接近0了,怎么办?...

修改判断条件。
如果分子也趋于零,用洛必达法则;
如果分子不趋于零,更新判断条件。
8楼2013-09-26 11:30:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

增加判断语句,用一个很小的数代替0,避免/0出现。
4楼2013-09-26 11:00:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longmaomao

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by yongcailiu at 2013-09-26 09:02:52
这种情况要特殊考虑和处理,可以考虑当分母绝对值小于某个很小很小的正数(在C里一般是1e-8,matlab里面不清楚设置多大合理),进行其他的处理。

在matlab里我们的迭代终止条件是1e-12,分子可以用和差化积公式,但是当|ua-u|很小的时候,怎么处理?谢谢
5楼2013-09-26 11:19:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longmaomao

铁虫 (初入文坛)

引用回帖:
3楼: Originally posted by 山海一色 at 2013-09-26 09:08:37
在分母为零时略过,踢出运算即用一个很小包含零的小区间保护起来不运算。

有没有具体的程序可以参考,同时我们迭代的终止条件是1e-12已经很接近零了!谢谢
6楼2013-09-26 11:23:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longmaomao

铁虫 (初入文坛)

内容已删除
7楼2013-09-26 11:24:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longmaomao

铁虫 (初入文坛)

引用回帖:
8楼: Originally posted by feixiaolin at 2013-09-26 11:30:28
修改判断条件。
如果分子也趋于零,用洛必达法则;
如果分子不趋于零,更新判断条件。...

非常感谢你 我师兄也是这么跟我说,但是再追问一句数值离散后的罗比达法则,怎么用连续的没有问题,谢谢!!
9楼2013-09-26 23:40:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
9楼: Originally posted by longmaomao at 2013-09-26 23:40:50
非常感谢你 我师兄也是这么跟我说,但是再追问一句数值离散后的罗比达法则,怎么用连续的没有问题,谢谢!!...

例如1楼cos() 变成-sin();
10楼2013-09-27 00:03:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 longmaomao 的主题更新
信息提示
请填处理意见