• 大小: 166KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2022-09-07
  • 语言: Matlab
  • 标签:

资源简介

以某偏微分方程为例,应用多重网格法进行了求解,编写了matlab程序,注释详细,并对计算结果进行了分析。

资源截图

代码片段和文件信息

function u_fine=interpolate(u_coarse)
%Copyright@Peng Yj NWPU2016.3.3
%由粗网格延拓到细网格,采用线性插值算子
%将下一层近似解的修正量插值到上一层

%输入项:u_coarse(粗网格列向量)
%输出项:u_fine(密网格列向量)

%示例如下:
%下一层共9个点,首尾函数值已知,去除,共7个点
%上一层共17个点,首尾函数值已知,去除,共15个点
%下一层首尾的修正量为0

%   1    1____1____1____1____1____1____1____1____1____1____1____1____1____1____1    1
%       / \   |   / \   |   / \   |   / \   |   / \   |   / \   |   / \   |   / \
%    0 /   \  |  /   \  |  /   \  |1 /   \ 1|  /   \  |  /   \  |  /   \  |  /   \
%     /     \ | /     \ | /     \ | /     \ | /     \ | /     \ | /     \ | /    0\
%    /  1/2  \|/       \|/       \|/  1/2  \|/       \|/       \|/       \|/       \
%   1         1_________1_________1_________1_________1_________1_________1         1          
%
u_coarse_size=size(u_coarse1);     %粗网格向量的长度,则细网格向量的长度为2*u_coarse_size+1
u_fine(11)=u_coarse(11)/2;  %首项
u_fine(2*u_coarse_size+11)=u_coarse(u_coarse_size1)/2;  %尾项

for i=1:u_coarse_size
    u_fine(2*i1)=u_coarse(i1);  %偶数项
end
for i=3:2:2*u_coarse_size-1
    u_fine(i1)=u_coarse((i-1)/21)/2+u_coarse((i+1)/21)/2;  %奇数项(除首尾项外)
end
end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1277  2016-03-04 19:20  多重网格法实例及matlab程序\interpolate.m

     文件       7041  2016-03-04 19:10  多重网格法实例及matlab程序\main.m

     文件     186114  2016-03-04 19:27  多重网格法实例及matlab程序\Readme.pdf

     文件       1080  2016-03-04 19:21  多重网格法实例及matlab程序\restrict.m

     文件        594  2016-03-03 15:21  多重网格法实例及matlab程序\SOR.m

     目录          0  2016-03-04 19:28  多重网格法实例及matlab程序

----------- ---------  ---------- -----  ----

               196106                    6


评论

共有 条评论