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相关推荐

  1. 用递归法计算斐波那契数列的第n项

     斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...

  2. 二叉树-对称二叉树(递归法)

    题意: 给定一个二叉树,检查它是否是镜像对称的. 中间划开,看是否对称 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / 2 2 / \ / 3 4 4 3 思路:(递归法) 这里镜像 ...

  3. python递归合并排序_python 归并排序的递归法与迭代法(利用队列)实现,以及性能测试...

    递归排序核心 递归排序的核心是 分与合 分的最终结果 就是将原数组中每一个数字分作一个数组, 合就是 所有小数组不断排序,合并的过程. 合并的过程是先将两个含有一个数字的数组排序,合并(每次比较两个数 ...

  4. 整数划分问题(递归法)

    整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及.所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 < ...

  5. 三目运算法求一个大值,以及指定位数的应用,以及函数的声明,以及函数的嵌套,以及函数的递归,以及用递归法求阶乘

    1.三目运算法 首先一般方法比较两个数的大小 用空格和回车都一样 当结果非x即y的时候 我们可以用三目运算法 z=x>y?x:y 如果表达式成立取前面的值,如果表达式不成立取后面的值 也可以改成 ...

  6. 顺序表应用7:最大子段和之分治递归法

    Description 给定n(1<=n<=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的子段和的最 ...

  7. 第 3 章 第 2 题 求级数问题 递归法实现

    问题分析 输入:阶数 k,级数前 k 项 a1 - ak,常系数 c1 - ck+1,要求到的级数项 m 输出:1 - m 项级数 a1 -am 约束:无 思路分析 首先要明白 m 肯定是大于 k 的 ...

  8. 树的宽度 递归法和非递归法

    递归法思路: 建立一个数组,count[1]表第1层节点总数,即宽度,count[2]表第二层节点总数,依次类推 用先序遍历二叉树,每深入一层就把该层的节点个数加1,最大节点数即树的宽度 代码如下: ...

  9. 树的高度 递归法和非递归法

    递归法思路: 树的高度即节点子树的高度+1(节点子树的高度即左子树高度,右子树高度的最大值) 代码如下: // Height_Recursive 递归法求树的高度 int Height_Recursi ...

最新文章

  1. SQL Server 2008 清空删除日志文件 130G日志 10秒内变10M .
  2. MySQL如何利用索引优化ORDER BY排序语句
  3. Android-源代码分析
  4. python—操作MySQL查询表中数据
  5. Thinking in C++ Notes 常量
  6. jquery背景动画插件使用
  7. 视频直播技术(三):低延时直播经验总结
  8. 图像处理之理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器的matlab实现去噪
  9. Python excel批量自动邮件发送
  10. luogu P5336 [THUSC2016]成绩单
  11. 计算机专业知识3,计算机专业知识试卷3
  12. android x86 cm14,cm14.1下载|cm14.1(cyanogenmod) 官方版 - 软件下载 - 绿茶软件园|33LC.com...
  13. web渗透测试----28、ARP欺骗
  14. AVL树的操作及调整成AVL树
  15. 计算机网络 ping中ttl,ping命令显示的TTL是什么意思?
  16. java数学题_小学数学练习题用Java实现
  17. 杭州seo工资高吗?杭州做seo工资一般多少
  18. 巴特沃斯滤波器使用-butter
  19. 高手支招:不用权限快速访问网络资源_jiasuba.com
  20. 2019保研南京大学软件学院后的一些感想

热门文章

  1. 2020校招搜狗笔试
  2. matlab草稿本,解读草稿本——这个学具,你可千万不能忽视
  3. oracle判断不是null,oracle中判断不为null
  4. JAVA 获取某天、某周、某月、某年的开始时间和结束时间
  5. 如何用python计算年龄_用Python写一个能算出自己年龄的小程序
  6. 无损音乐知识收集3(转)
  7. ios mac使用mitmproxy抓包
  8. 如何实现PDF转Word
  9. 用python造数据
  10. Java自定义模板设计