24小时热门版块排行榜    

查看: 900  |  回复: 2

往前一步走

新虫 (小有名气)

[求助] 如何把MATLAB中符号计算改成数值运算,提高计算速度? 已有1人参与

用牛顿迭代求解非线性方程组时,用MATLAB编程序,由于需要求解雅可比矩阵,是用的符号计算,但是符号计算时间太长了,如何把牛顿迭代改成数值运算,不用MATLAB里面的符号计算,这样就可以提高计算时间了

发自小木虫Android客户端
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kidsjtu

木虫 (初入文坛)

求雅克比本来就是符号推导吧,符号计算出来,记住或者自己推导出来,后面每步都只要替换变量就可以了,不用每步都推导。

发自小木虫Android客户端
2楼2016-11-23 07:28:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
可以无视雅克比矩阵。

通常的差分代替微分的方法逼近雅克比矩阵也行
fsolve自带差分方法。

如果已经知道雅克比矩阵的解析形式,还可以自己编写函数,作为选项,设置到fsolve算法的Options里面。

matlab差分近似的方法,求数值解的时候,并不比符号计算的差多少,尤其是在牛顿法里面。通常的结果是:迭代次数增加,但是计算效率更高
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
3楼2016-11-23 10:07:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 往前一步走 的主题更新
信息提示
请填处理意见