function [eigf,eigv,dof]=laplaceeig(node,elem,problem)
% -boundary eigenvalue problem
% problem='0-boundary'
[bdNode,Dirichet,inNode]=findboundary(elem);
%找出边界节点、边界边的节点编号、内部节点
N=size(node,); %节点个数
NT=size(elem,); %单元个数
Nin=N-size(bdNode,); %内部节点个数
ve1=node(elem(:,),:)-node(elem(:,),:);
%单元第三个节点坐标减去第二个坐标
ve2=node(elem(:,),:)-node(elem(:,),:);
%单元第一个节点坐标减去第三个坐标
ve3=node(elem(:,),:)-node(elem(:,),:);
%单元第二个节点坐标减去第一个坐标
area=0.5*(ve3(:,).*ve2(:,)+ve3(:,).*ve2(:,)) %求每个单元的面积
Dlambda(:NT,:,)=[-ve1(:,)./(*area),ve1(:,)./(*area)];
% 求 dlambda1/dx,dlambda1/dy
Dlambda(:NT,:,)=[-ve2(:,)./(*area),ve2(:,)./(*area)];
% 求 dlambda2/dx,dlambda2/dy
Dlambda(:NT,:,)=[-ve3(:,)./(*area),ve3(:,)./(*area)];
% 求 dlambda3/dx,dlambda3/dy
clear ve1,ve2,ve3
A=sparse(N,N); %生成N*N的零矩阵
B=sparse(N,N); %生成N*N的零矩阵
for i=:
for j=i:
Aij=(Dlambda(:,,i).*Dlambda(:,,j)+Dlambda(:,,i).*Dlambda(:,,j)).*area;
% 求出去 Aij的出去对角的上三角剖分
if(j==i)
A=A+sparse(elem(:,i),elem(:,j),Aij,N,N);% 求Aij的对角元
B=B+sparse(elem(:,i),elem(:,j),area/,N,N); % lambda^2在边上的积分
else
A=A+sparse([elem(:,i);elem(:,j)],[elem(:,j);elem(:,i)],[Aij;Aij],N,N);
B=B+sparse([elem(:,i);elem(:,j)],[elem(:,j);elem(:,i)],[area;area]/,N,N);
%lambda_i*lambda_j在单元的积分
end
end end
clear Aij
% -boundary 注意节点个数不够需要进行一致加密
A(bdNode,:)=[];A(:,bdNode)=[];
B(bdNode,:)=[];B(:,bdNode)=[]; %去掉边界节点
[eigf,eigv]=eigs(A,B,,'sm'); %按模最小求第一个特征值及对应的特征向量
eigf=eigf/(eigf'*A*eigf)^0.5; %按1模把特征值向量规范化 u/(u'*A*u)
eigf=accumarray([inNode,ones(Nin,)],eigf,[N,]);% 表 u 组装成与节点个数大小
dof=Nin;

function [eigf,eigv,dof]=laplaceeig(node,elem,problem)

function [eigf,eigv,dof]=laplaceeig(node,elem,problem)的更多相关文章

  1. [A,D]=solverAdini(node,elem,bdEdge,h1,h2)

    >> [A,D]=solverAdini(node,elem,bdEdge,h1,h2) A = (1,1) 14.5000 (2,1) 11.0000 (3,1) 11.5000 (4, ...

  2. 双二次Lagrange 有限元计算特征值程序(基于iFEM)

    function lambda = c0P2(h) %% Mesh [node,elem] = squarequadmesh([,,,],h); elem = elem(:,[,,,]); showm ...

  3. Node.js入门:事件机制

    Evented I/O for V8 JavaScript     基于V8引擎实现的事件驱动IO.   事件机制的实现     Node.js中大部分的模块,都继承自Event模块(http://n ...

  4. 深入浅出Node.js(上)

    (一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟 ...

  5. HDU - 5875 Function(预处理)

    Function The shorter, the simpler. With this problem, you should be convinced of this truth.      Yo ...

  6. jQuery.data() 与 jQuery(elem).data()源码解读

    之前一直以为 jQuery(elem).data()是在内部调用了 jQuery.data(),看了代码后发现不是.但是这两个还是需要放在一起看,因为它们内部都使用了jQuery的数据缓存机制.好吧, ...

  7. node.js传参给PHP失败,headers加上'Content-Length': Buffer.byteLength(content)

    node.js需要传参给PHP,执行计划任务 var events = require('events'); start_cron(,,{"auth":"7wElqW6v ...

  8. Angularjs+node+Mysql实现地图上的多点标注

    注:本文适合对于node有一定基础的人,如果您是小白,请先用1个小时学习node.node文档https://nodejs.org/en/docs/ 该片博文的源码地址:https://github. ...

  9. javascript --- Function模式

    回调函数 在javascript中,当一个函数A作为另外一个函数B的其中一个参数时,则称A函数为回调函数,即A可以在函数B的运行周期内执行(开始,中间,结束). 举例来说,有一个函数用于生成node. ...

随机推荐

  1. php ip2long 负数问题

    官方网站: Note: 因为PHP的 integer 类型是有符号,并且有许多的IP地址讲导致在32位系统的情况下为负数, 你需要使用 "%u" 进行转换通过 sprintf()  ...

  2. STL容器的常用用法

    STL: 1.vector: vector<int> v;vector<int> v(10);//定义大小为10的int型向量容器.vector<int> v(10 ...

  3. Python issubclass() 函数

    Python issubclass() 函数  Python 内置函数 描述 issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类. 语法 以下是 iss ...

  4. [SCOI2007]修车(建图好题)

    [SCOI2007]修车 https://www.lydsy.com/JudgeOnline/problem.php?id=1070 Time Limit: 1 Sec  Memory Limit:  ...

  5. TZOJ 1545 Hurdles of 110m(01背包dp)

    描述 In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperit ...

  6. Spring框架的Bean管理的配置文件方式

    1. id属性和name属性的区别 * id -- Bean起个名字,在约束中采用ID的约束,唯一 * 取值要求:必须以字母开始,可以使用字母.数字.连字符.下划线.句话.冒号 id:不能出现特殊字符 ...

  7. 【原创】有关Silverlight中 "Silverlight提示4004错误" 的解决方案及思路。

    今天下午再改一个页面xaml时没注意一个细节导致了这个错误,整整搞了1个小时.在这给大家参考参考. 出错原因: 总结:其实silverlight已经提示了 出错的细节信息了,没必要因为silverli ...

  8. cannot convert from 'wchar_t *' to 'char *' 问题

    MFC中使用unicode 会导致cstring之间的转换变的很复杂 经常遇到这样的错误cannot convert from 'wchar_t *' to 'char *' 强制转换成wchar_t ...

  9. c#/vb调用c编写的标准dll

    准备: 首先打开vc++ 6.0新建工程,选择Win32 Dynamic Link-Library,命名为stdLibrary 新建library.cpp文件,内容如下 #include <st ...

  10. Golang之时间、日期类型

    孤身只影的一直小地鼠,艰难的走在路上 package main import ( "fmt" "time" ) //获取时间的格式 func testTime( ...