matlab - 递归差分方程 MATLAB
问题描述
我有一个简单的递归方程,想法是对于给定的 x 起始值,跟踪 x 的未来值,看看是否有收敛。我在下面写了一个简单的 MATLAB 代码,很明显,x 很快收敛到 0.0292 的稳态值。
x(1) = 0.2;
for t = 1:1:100
x(t+1) = 0.12*x(t).^0.40;
end
但是,对于更复杂的方程,我认为我不能应用上面的代码。例如,如果我有:
x(t+1) = 0.12*(x(t)./(x(t+1)+x(t))).^0.40
我如何“解决”它以查看(不尝试进行任何代数操作以在右侧隔离 x(t+1))以查看 x 的路径是什么?谢谢你。
解决方案
正如评论中提到的,一个简单的方法是给出一个初始猜测x(t+1)
并尝试收敛到一个解决方案x(t+1)
,然后继续迭代。
recEq = @(p,q) 0.12 * (p ./ (q+p))^0.4;
x = nan(1, 100);
x(1) = 0.2;
for t = 1:100
kold = x(t);
k = recEq(x(t), kold);
while abs(k-kold) > 1e-8
kold = k;
k = recEq(x(t), kold);
end
x(t+1) = k;
end
推荐阅读
- typescript - VSCode 材质主题与内置 TypeScript 和 JavaScript 语言功能冲突
- css - 我怎样才能有两个固定宽度的列和两个均匀分布的灵活列
- xpath - XPath 1.0 用于查找名称基于属性但具有后缀的属性节点的兄弟节点
- linux - Nginx 反向代理显示默认页面而不是远程主页
- node.js - 取消意图不暂停/退出
- javascript - 如何在 React 中使表格的每一行都可点击?
- node.js - 在服务器上从文件或从 Mongodb 记录加载 HTML 模板效率更高吗?
- streamsets - Hive 数据库的多个来源
- vb.net - 如何将图表控制代码从 Winform 移动到 dll,同时将图表对象保留在 Winform 中?
- amazon-web-services - SSH 隧道后面的 AWS ELB 重定向不起作用