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

[数值计算] findroot的默认算法牛顿法的具体过程如何?

[复制链接]
发表于 2014-6-30 18:07:04 | 显示全部楼层 |阅读模式 来自 天津

我遇到的问题需要解三个一阶常微分非线性方程构成的方程组,先用有限差分法进行了离散,然后想用findroot命令来找下它们的数值解。
我的问题是,findroot命令在只给定一个初始值时采用的“牛顿法”的具体过程是怎样的?是按照迭代(因复制不进来公式,请见图1) 进行吗?
我用一个简单的方程(请见图2) 和方程组(请见图3) 进行了验证,分别采用Methmatica里面的Findroot命令和自己手写的按照(请见图1) 迭代的牛顿法,然后把两种方法每一步的迭代值列出来,发现是一样的。
但是不知道针对我那个很复杂的方程组(有限差分法离散完之后有3000个方程),Findroot命令默认的牛顿法有没有效?我们老师说让我手写牛顿法来求解,不知道有没有这个必要?
还有个问题是,我用Findroot命令求解完之后,遇到的错误是:(请见图4)

尝试着改大了MaxIteration,没用;
改小了AccuracyGoal,一次有用,下次再迭代就同样出现这个错误;
改大了WorkingPrecision,计算时间花了很久,但是还有出现这个错误。
感觉都是治标不治本,那具体原因是“牛顿法”不合适还是我的方程本身就有问题呢。。。

不知道把问题描述清楚木有,希望大家多多给些意见!
感谢感谢!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2014-7-15 17:37:12 | 显示全部楼层 来自 上海普陀区
Simdroid开发平台
可以用其他数值方法解题。
或者参考高级手册 Mathematica Tutorial Collection/ Differential Equation Solving With DSolve

下载
http://www.wolfram.com/learningc ... lvingWithDSolve.pdf
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 13:07 , Processed in 0.030523 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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