用递归法实现多重网格法——MATLAB
FMG运行图
MATLAB递归代码
clear; clc;
global f1
f1 = fopen('out1.txt', 'w'); %该文件只是为了测试
k = 5; ks = 1; % 总的网格层、开始层
gamma = 1; ncy = 1; % 类型(V or W), 总的循环次数
nu0 = 6; nu1 =2; nu2 = 1;
fmg(k, ks, nu0, nu1, nu2, gamma, ncy)
fclose(f1);
a = load('out1.txt');
figure(1)
plot(a, 'bo-', 'LineWidth', 1.5);% FMG
function fmg(k, ks, nu0, nu1, nu2, gamma, ncy)
global f1
if k == ksif ks == 1for i = 1 : nu0% 迭代代码fprintf(f1, '%d\n', k);endelsefor j = 1 : ncycycle(k, nu0, nu1, nu2, gamma);endend
elseif k > ksfmg(k - 1, ks, nu0, nu1, nu2, gamma, ncy) % 向高一层插值代码 for j = 1 : ncycycle(k, nu0, nu1, nu2, gamma);endend
end
endfunction cycle(k, nu0, nu1, nu2, gamma)
global f1
if k == 1for i = 1 : nu0% 迭代代码fprintf(f1, '%d\n', k);end
elsefor i = 1 : nu1% 迭代代码fprintf(f1, '%d\n', k);end for j = 1 : gammacycle(k - 1, nu0, nu1, nu2, gamma);end for i = 1 : nu2% 迭代代码fprintf(f1, '%d\n', k);end
end
end
运行图
由上图可知,实现了FMG循环的功能。
参考文献
- Venner C.H., Lubrecht A.A. Multilevel methods in lubrication [M]. Elsevier, 2000.
用递归法实现多重网格法——MATLAB相关推荐
- 用递归法计算斐波那契数列的第n项
斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...
- 二叉树-对称二叉树(递归法)
题意: 给定一个二叉树,检查它是否是镜像对称的. 中间划开,看是否对称 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / 2 2 / \ / 3 4 4 3 思路:(递归法) 这里镜像 ...
- python递归合并排序_python 归并排序的递归法与迭代法(利用队列)实现,以及性能测试...
递归排序核心 递归排序的核心是 分与合 分的最终结果 就是将原数组中每一个数字分作一个数组, 合就是 所有小数组不断排序,合并的过程. 合并的过程是先将两个含有一个数字的数组排序,合并(每次比较两个数 ...
- 整数划分问题(递归法)
整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及.所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 < ...
- 三目运算法求一个大值,以及指定位数的应用,以及函数的声明,以及函数的嵌套,以及函数的递归,以及用递归法求阶乘
1.三目运算法 首先一般方法比较两个数的大小 用空格和回车都一样 当结果非x即y的时候 我们可以用三目运算法 z=x>y?x:y 如果表达式成立取前面的值,如果表达式不成立取后面的值 也可以改成 ...
- 顺序表应用7:最大子段和之分治递归法
Description 给定n(1<=n<=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的子段和的最 ...
- 第 3 章 第 2 题 求级数问题 递归法实现
问题分析 输入:阶数 k,级数前 k 项 a1 - ak,常系数 c1 - ck+1,要求到的级数项 m 输出:1 - m 项级数 a1 -am 约束:无 思路分析 首先要明白 m 肯定是大于 k 的 ...
- 树的宽度 递归法和非递归法
递归法思路: 建立一个数组,count[1]表第1层节点总数,即宽度,count[2]表第二层节点总数,依次类推 用先序遍历二叉树,每深入一层就把该层的节点个数加1,最大节点数即树的宽度 代码如下: ...
- 树的高度 递归法和非递归法
递归法思路: 树的高度即节点子树的高度+1(节点子树的高度即左子树高度,右子树高度的最大值) 代码如下: // Height_Recursive 递归法求树的高度 int Height_Recursi ...
最新文章
- SQL Server 2008 清空删除日志文件 130G日志 10秒内变10M .
- MySQL如何利用索引优化ORDER BY排序语句
- Android-源代码分析
- python—操作MySQL查询表中数据
- Thinking in C++ Notes 常量
- jquery背景动画插件使用
- 视频直播技术(三):低延时直播经验总结
- 图像处理之理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器的matlab实现去噪
- Python excel批量自动邮件发送
- luogu P5336 [THUSC2016]成绩单
- 计算机专业知识3,计算机专业知识试卷3
- android x86 cm14,cm14.1下载|cm14.1(cyanogenmod) 官方版 - 软件下载 - 绿茶软件园|33LC.com...
- web渗透测试----28、ARP欺骗
- AVL树的操作及调整成AVL树
- 计算机网络 ping中ttl,ping命令显示的TTL是什么意思?
- java数学题_小学数学练习题用Java实现
- 杭州seo工资高吗?杭州做seo工资一般多少
- 巴特沃斯滤波器使用-butter
- 高手支招:不用权限快速访问网络资源_jiasuba.com
- 2019保研南京大学软件学院后的一些感想