⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jacobian.m

📁 MATLAB二维电阻抗断层成像算法!用于医学成像,里面包括有限元剖分正问题,及反问题的算法.并且附有网络剖分数据表!
💻 M
字号:
function [J]=Jacobian(Node,Element,Agrad,U,U0,rho,style);% computes the Jacobian for 2D EIT when elementwise basis is used.%% INPUT% Node = 剖分节点结构数组% Element =剖分单元结构数组% Agrad = \int_{Element(ii) \nabla\phi_i\cdot\nabla\phi_j% U = 电极处的电压% U0 = 计算场域内的电压% rho = 电阻率或电导率向量% style = 重构的电阻率或电导率为实数或复数 %% OUTPUT% J = JacobianNNode=max(size(Node));       %剖分的节点数NElement=max(size(Element)); %剖分的单元数if nargin<3 Agrad=sparse(NNode^2,NElement);%初始化单元的整体雅可比矩阵(梯度阵) %******************************************************* for ii=1:NElement          %对每个单元进行处理  ind=Element(ii).Topology; %提取该单元的拓朴结构(三个相关节点)  gg=reshape([Node(ind).Coordinate],2,max(size(ind)))';   % 三个相关节点的坐标阵3*2  if max(size(ind))==3      %判断是否为一阶单元   anis=grinprodgaus(gg,1); %调用该单元三节点的梯度计算  else   anis=grinprodgausquad(gg,1);% 二阶单元处理  end  Aa=sparse(NNode,NNode);   %初始化雅可比矩阵的子矩阵    Aa(ind,ind)=anis;         %赋值雅可比矩阵的子矩阵  Agrad(:,ii)=Aa(:);        %由子矩阵封装构成雅可比整体矩阵 end J=Agrad; %*******************************************************elseif style=='comp'            %复数计算则如下  J=zeros(size(U,2)*size(U0,2),2*size(Agrad,2)); for ii=1:size(Agrad,2);    Agrad1=reshape(Agrad(:,ii),NNode,NNode);    AgU1=Agrad1*U(1:NNode,:);    AgU2=Agrad1*U(NNode+1:2*NNode,:);    JJ=-U0.'*[AgU1;AgU2];    JJ=JJ(:);    J(:,ii)=JJ;    JJ=-U0.'*[-AgU2;AgU1];    J(:,ii+size(Agrad,2))=JJ(:); endelseif style=='real'       %实数计算则如下 J=zeros(size(U,2)*size(U0,2),size(Agrad,2)); for ii=1:size(Agrad,2);    JJ=U0.'*1/rho(ii)^2*reshape(Agrad(:,ii),NNode,NNode)*U;  JJ=JJ(:);  J(:,ii)=JJ; endendend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -