function [eigf,eigv,dof]=laplaceeig(node,elem,problem)
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)的更多相关文章
- [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, ...
- 双二次Lagrange 有限元计算特征值程序(基于iFEM)
function lambda = c0P2(h) %% Mesh [node,elem] = squarequadmesh([,,,],h); elem = elem(:,[,,,]); showm ...
- Node.js入门:事件机制
Evented I/O for V8 JavaScript 基于V8引擎实现的事件驱动IO. 事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://n ...
- 深入浅出Node.js(上)
(一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟 ...
- HDU - 5875 Function(预处理)
Function The shorter, the simpler. With this problem, you should be convinced of this truth. Yo ...
- jQuery.data() 与 jQuery(elem).data()源码解读
之前一直以为 jQuery(elem).data()是在内部调用了 jQuery.data(),看了代码后发现不是.但是这两个还是需要放在一起看,因为它们内部都使用了jQuery的数据缓存机制.好吧, ...
- node.js传参给PHP失败,headers加上'Content-Length': Buffer.byteLength(content)
node.js需要传参给PHP,执行计划任务 var events = require('events'); start_cron(,,{"auth":"7wElqW6v ...
- Angularjs+node+Mysql实现地图上的多点标注
注:本文适合对于node有一定基础的人,如果您是小白,请先用1个小时学习node.node文档https://nodejs.org/en/docs/ 该片博文的源码地址:https://github. ...
- javascript --- Function模式
回调函数 在javascript中,当一个函数A作为另外一个函数B的其中一个参数时,则称A函数为回调函数,即A可以在函数B的运行周期内执行(开始,中间,结束). 举例来说,有一个函数用于生成node. ...
随机推荐
- 查询中mybatis的if判断里传入0
1.传入的是long 或者 Integer类型 ,<if test="id != null "> 但是id传值为0时(前提是id对应的类型为long 或者 Intege ...
- url获取参数
参考http://www.runoob.com/w3cnote/js-get-url-param.html function getQueryVariable(variable) { var quer ...
- android笔记:Service
服务:在后台运行,没有界面的组件. 服务生命周期如下: 两种启动方式: 1.startService(): onCreate()-->onStartCommand()-->onDestro ...
- 用Git发布版本笔记
1.首先,如果是发布的Develop分支,先从master建立HotFix分支,提交到git并指定关联关系 (git branch --set-upstream-to=D..) 2.对H分支进行功能完 ...
- hdoj1257(DP-LIS/贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 方法1--贪心: 定义一个数组f[30005],由于题目没给数据量大小,故为了保险,开到最大(高 ...
- ArrayList与LinkedList的基本添加删除方法 模拟栈 队列
ArrayList LinkedList ArrayList的add是在末尾添加 linkedlist也是 offer加在末尾 poll获取并移除此列表的头(第一个元素) peek 获取第一个但不移 ...
- sqlserver数据库维护常用sql
1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...
- 在iframe框架中全屏不好使的原因
遇到的问题:我是在iframe框架中添加了一个插件在360和火狐中不好使,将allowfullscreen="true" 属性配置好就没问题了: 可能出现的原因:将allowful ...
- Oracle增加一列、修改一列数据类型
Oracle增加一列.修改一列数据类型: 添加一列: alter table A add( CFYJSNR varchar2(20)); 修改列: alter table A ren ...
- PAT 1058 选择题(20)(代码+思路)
1058 选择题(20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100 ...