首页 > 其他分享 >有限元方法[Matlab]-笔记

有限元方法[Matlab]-笔记

时间:2024-04-13 20:33:30浏览次数:16  
标签:有限元 reactions 笔记 elementDof activeDof numberNodes Matlab stiffness displacements

<< MATLAB Codes for Finite Element Analysis - Solids and Structures (Ferreira) >> 笔记

封面

chapter 01 matlab basic

第二章: 离散系统

笔记、例题

Page 1

Page 2

Page 3

Matlab代码

  • problem1.m
% MATLAB codes for Finite Element Analysis

%  Problem 1: 3 springs problem

% clear memory
clear ;

% ? define vars
P=10; % N
ki=[1;1;1;1];

% elementNodes: connections at elements
elementNodes=[1 2;
            2 3;
            2 4];

% numberElements: number of Elements
numberElements=size(elementNodes,1);

% numberNodes: number of nodes
numberNodes=4;

% for structure:
% displacements: displacement vector N x 1
% force : force vector N x 1
% stiffness: stiffness matrix N x N
displacements=zeros(numberNodes,1); %#ok<PREALL>
force=zeros(numberNodes,1);
stiffness=zeros(numberNodes);

% applied load at node 2
force(2)=P;
% computation of the system stiffness matrix
for e=1:numberElements
    % elementDof: element degrees of freedom (Dof)
    elementDof=elementNodes(e,:) ;
    stiffness(elementDof,elementDof)=...
    stiffness(elementDof,elementDof)+ki(e)*[1 -1;-1 1];
end
% boundary conditions and solution
% prescribed dofs
prescribedDof=[1;3;4];
% free Dof : activeDof
% setdiff() 函数-->求两个数组的差集
% C = setdiff(A,B) 返回 A 中存在但 B 中不存在的数据,不包含重复项.C 是有序的.
activeDof=setdiff((1:numberNodes)',prescribedDof);

% solution
% !KU=F --> U=K\F
displacements=stiffness(activeDof,activeDof)\force(activeDof);

% positioning all displacements
displacements1=zeros(numberNodes,1);
displacements1(activeDof)=displacements;

% output displacements/reactions
outputDisplacementsReactions(displacements1,stiffness,numberNodes,prescribedDof)

  • outputDisplacementsReactions.m
function outputDisplacementsReactions(displacements,stiffness,GDof,prescribedDof)
    % output of displacements and reactions in
    % tabular form
    % GDof: total number of degrees of freedom of the problem
    % displacements
    disp('Displacements')
    %displacements=displacements1;
    jj=1:GDof; % format
    [jj' displacements]
    % reactions
    F=stiffness*displacements;
    reactions=F(prescribedDof);
    disp('reactions')
    [prescribedDof reactions]
end

标签:有限元,reactions,笔记,elementDof,activeDof,numberNodes,Matlab,stiffness,displacements
From: https://www.cnblogs.com/aksoam/p/18133331

相关文章

  • 多项式学习笔记
    1.前置知识1.1基础\(f(x)=\sum_{i=0}^na_ix^i\)被称为一个\(n\)次多项式。\(\degf(x)\)表示多项式的次数。\(f(x)g(x)=h(x)\)称为多项式乘法,也叫多项式卷积,满足\(h_n=\sum_{i+j=n}f_ig_j\)。1.2点值给定一个多项式\(f(x)\),再给\(m\)个点\(x_1,\dot......
  • [学习笔记] 树上差分 - 图论
    前置知识:树,LCA,前缀和与差分边差分这个名字是在网上看到的,不理解为什么要叫这么一个名字,可能是因为它与树链修改有关。当然,用于树链修改单点查询非常方便~看这个图,该图是以点1为根进行DFS的。如果我们要把从3->4这条树链上所有的点统统加上1,可以都转化为对到根节点的......
  • React笔记(一)
    基础型exportdefaultfunctionProfile(){return(<imgsrc="https://i.imgur.com/MK3eW3Am.jpg"alt="KatherineJohnson"/>)}默认 exportdefaultfunctionButton(){} importButtonfrom'./Button.js�......
  • 苍穹外卖学习笔记——第五天
    店铺营业状态设置Redis入门Redis简介Redis是一个基于内存的key-value结构数据库。Redis的特点基于内存存储,读写性能高。适合存储热点数据(热点商品、资讯、新闻)。企业应用广泛。Redis的网站官网:https://redis.io中文网:https://www.redis.net.cn/Redis的下载与安装......
  • FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
    ​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。视频的封装格式除了悠久的MP4和ASF之外,还有较新的WebM格式,该格式的音频编码主要采......
  • FFT 与 NTT 学习笔记
    【概念】点值:给定多项式\(f(x)=a_0+a_1x+\cdots+a_{n-1}x^{n-1}\)和\(x_1\simx_m\),求\(f(x_1),f(x_2),\dots,f(x_m)\)。(\(m=n\))求点值的算法一般是\(O(n^2)\)的,但对于特殊的多项式,可以做到更快。插值:给定\((x_0,y_0),(x_1,y_1),\dots,(x_{n-1},y_{n-1})\),其中\(x_0\s......
  • 杜教筛学习笔记
    杜教筛学习笔记杜教筛被用于求解某一数论函数\(f\)的前缀和,即对于形如\(S(n)=\sum_{i=1}^nf(i)\)形式的函数\(S\),杜教筛能够在小于线性复杂度的复杂度内求解。算法思想尝试构造一个函数\(S\)的递推式。选择一个数论函数\(g\),那么根据狄利克雷卷积可以得到:\[\begin{ali......
  • 读所罗门的密码笔记18_大宪章
    1. 大宪章1.1. 1215年会议开启了一个艰难的谈判过程,充满了紧张和对权力与道德权威的争夺1.1.1. 这部宪章会赋予各方一系列的权力,对国王的自由裁量权进行制衡1.2. 《大宪章》还需要300多年的时间和多次迭代,才能成为财产权、公平税收、司法程序和政府最高法律的参考文件1.3......
  • SeleniumBase 制作WEB用户使用导览,并导出 JS-使用笔记(三)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(三)SeleniumBase制作WEB用户使用导览,并导出JSSeleniumBase包含强大的JS代码生成器,用于将Python转换为JavaScript,而制作用户导览,就是其中的应用之一,用户导览能将SaaS产品采用率提高10倍或更多目录创建导览......
  • 2023 国庆 清北学堂笔记
    2023国庆QBXT未完结,勿喷Day0被GSS6卡了一整天/kkDay1挂大分膜你赛125pts原因是T1100pts->50pts被卡常力啊啊啊啊其实也不是被卡常了我写的\(\mathcal{O(n^3\logn)}\)然而标算\(\mathcal{O(n^3)}\)但有人\(\mathcal{O(n^4)}\)也过去......