1. 程式人生 > >有限元方法入門:有限元方法簡單的二維算例(矩形剖分)

有限元方法入門:有限元方法簡單的二維算例(矩形剖分)

#有限元方法簡單的二維算例(矩形剖分)

算例描述

我們對下述橢圓邊值問題 \label{eq1} {

Δ u = f
u Ω
= 0
\left \{ \begin{aligned} & -\Delta u = f\\ & u|_{\partial \Omega} = 0 & \end{aligned} \right.
其中, Ω = ( 0 , 1 ) 2 \Omega = (0,1)^2 f = 2 π 2 sin π x sin π y f=2\pi^2\text{sin}\pi x\text{sin}\pi y 。考慮其變分問題,對其變分問題有限元離散並求解,並驗證其為一階收斂。
注:問題的真解為 u ( x ) = sin π x sin π y u(x) = \text{sin}\pi x\text{sin}\pi y

變分問題

v H 0 1 \forall v \in H_0^1 ,乘([eq1])式兩邊,使用格林公式,利用邊界條件,易得\label{eq2}:
Ω u v d x = Ω f v d x \int _\Omega \nabla u \nabla v dx = \int _\Omega fv dx
其中 f f 為方程中的右端項。令\label{eq3}

a ( u , v ) = Ω u v d x f ( v ) = Ω f v d x \begin{aligned} &a(u,v) = \int _\Omega \nabla u \nabla v dx & \\ &f(v) = \int _\Omega fv dx & \end{aligned}

容易證明,原問題([eq1])等價於變分問題: \label{eq4} { u H 0 1 ,使得 a ( u , v ) = f ( v ) v H 0 1 \left \{ \begin{aligned} & \text{求}u \in H_0^1 \text{,使得}\\ & a(u,v) = f(v)&\forall v \in H_0^1 \end{aligned} \right.
事實上,在一定連續性的要求下,強解為弱解,弱解也是強解,二者等價。故求解問題([eq1])變為了求解問題([eq4])。更一般的變分問題,描述為:\label{eq5}
{ u V , s . t . a ( u , v ) = f ( v ) v V \left \{ \begin{aligned} & \text{求}u \in V ,s.t.&\\ & a(u,v) = f(v)&\forall v \in V& \end{aligned} \right.

有限元離散

問題轉化

我們來考慮上述變分問題的有限維逼近,即構造 V V 的有限維子空間 V h V V_h \subset V ,考慮如下的離散問題:\label{eq6}
{ u h V h , s . t . a ( u h , v h ) = f ( v h ) v h V h \left \{ \begin{aligned} & \text{求}u_h \in V_h ,s.t.&\\ & a(u_h,v_h) = f(v_h)&\forall v_h \in V_h& \end{aligned} \right.
我們用問題([eq6])近似問題([eq5]),後者的解逼近前者的解。所以我們可以通過求([eq6])的解作為近似解。
V h V_h 空間中的一組基為 { ϕ i } i = 1 N \{\phi_i\}_{i=1}^N ,若 u h = Σ u i ϕ i u_h = \Sigma u_i \phi_i (為了書寫方便,不加說明,求和指標都為1到N),我們需要求的是組合係數 u i u_i ,將 u h = Σ u i ϕ i u_h = \Sigma u_i \phi_i 代入,並依次分別取 v h v_h

相關推薦

有限元方法入門有限元方法簡單矩形

#有限元方法簡單的二維算例(矩形剖分) 算例描述 我們對下述橢圓邊值問題 \label{eq1} {

有限元方法入門有限元方法簡單三角形

有限元方法簡單的二維算例(三角形剖分) 算例描述 我們對下述橢圓邊值問題 \label{eq1} {−Δu=fu|∂Ω=0 {

有限元方法入門有限元方法簡單的一

有限元方法簡單的一維算例 算例描述 我們對下述邊值問題\label{eq1} {u′′(x)+u(x)=(1−π2)sinπxu(0)=u(1)=00≤x≤1 {

QRCode條碼開發計算格式資訊_2011.05.25

//函式功能:根據不同的糾錯等級,計算15位的格式資訊:BCH(15,5)//引數說明://chErrLevel                     -- 糾錯等級//返回值:strFormatInformation   -- 資料碼字CString CQRCodeDlg

iOS_碼掃描iOS自帶

iOS7開始,不需要第三方也能進行二維碼掃描了。 之前用過ZBar這個第三方包,後來iOS版本高了用不了,貌似我下的那個包只支援32位。 應該還有其他版本的支援,只是後來沒用到就沒去找了。 今天研究了一下系統自帶的二維碼掃描,掃描速度很快。 肚子餓,節約點時間直接上程式碼

QRCode條碼開發計算版本資訊_2011.06.01

//函式功能:根據不同的版本,計算18位的版本資訊:BCH(18,6) //引數說明: //strVersionNum -- 版本號(只有版本7-40才有版本資訊,其它版本沒有版本資訊) //返回值:strVersionInformation

寫一方法,列印等長的陣列,要求從1開始的自然數由方陣的最外圈向內螺旋方式地順序排列。 如 n = 4 則列印

/* * 22、 寫一方法,列印等長的二維陣列, * 要求從1開始的自然數由方陣的最外圈向內螺旋方式地順序排列。 如: n = 4 則列印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 */ public class Test22 {

PHP數組或任意數組轉換成一數組的方法匯總

字符串鍵 .net containe 靈活 targe map lang ref ram 目錄 1 array_reduce函數法 2 array_walk_recursive函數法 3 array_map函數法 假設有下面一個二維數組: $user = array

一個非常簡單方法使用JavaScript打包一個網頁成為安卓app打包遠景論壇

utf 網易 hub 文件 圖標 http taobao targe 應用 前言: 此方法非常簡單,可以挑一些移動端做的好的網站進行打包,比如 淘寶網, 京東網,網易新聞, 遠景論壇 大神看了輕噴,可以自己做了玩一下,本質上也是在瀏覽器訪問頁面,靈感來源於酷安

模板方法模式 + 觀察者模式 + 簡單工廠模式 + 單模式實現一個簡單的數據表讀寫

private 數據庫鏈 obs imp 通知 model 數據表 ring pri 實現功能: 對數據表的讀要緩存起來,對數據表的寫需要清除緩存. 數據表根據屬性字段來決定是否緩存 可以更換數據庫鏈接方式,比如可以隨時更換為mysql或mysqli() 當插入數據時給出一

爬蟲簡單入門第一個簡單爬蟲

import requests # socket-->http-->requests response=requests.get('https://tieba.baidu.com/f?kw=%E6%B5%81%E6%B5%AA%E6%B1%89') print(response.text)

WatchKit入門建立一個簡單的猜數遊戲

轉自:http://www.cocoachina.com/ios/20150202/11087.html 本文由cocoaChina譯者小組成員@TurtleFromMars 翻譯自Appcoda,原作者:julian engel,編者注:再過幾個月Apple Wa

Linux 環境下 Java jdk 安裝方法方法為 jdk.bin型別的jdk檔案

1、將jdk檔案放到一個目錄下  例如:jdk.bin   例如  /usr/java  放到了這個這個目錄下 2、然後利用命令檢視目錄下是否有此檔案 # cd /usr/java # ls 如果顯示檔案  jdk.bin 3、解壓jdk.bin檔案 # chmod 755 jdk.bin # ./jdk.b

℃江讓您從精通到入門Android Studio 簡單實現ViewPager,可做APP操作提示

前期準備,如下圖: 第一步、先書寫佈局檔案:activity_main.xml檔案如下: <?xml version="1.0" encoding="utf-8"?> <Re

Android修改包名 方法Rename方法,手動修改

下面介紹在Android studio中手動修改包名的方法: 1、點選 工程結構旁邊的小齒輪,將紅色部分那一串字元前的對勾去掉。 變化之後的結構為 2、在想要修改的那個包層級上 右鍵

Python入門selenium之登入()

from selenium import webdriver driver = webdriver.Firefox() url = 'http://www.caifupad.com/' driver.get(url) tt = driver.find_ele

java實現簡單迷宮2

blog 成員 new 構建 push port ava amp use 這次是改良版本。 將地圖封裝,老鼠封裝。是對Java基礎的一個練習吧。 這次實現也遇到了一些問題。主要是棧。封裝的mouse類中有成員變量i,j代表了老鼠的坐標。將mouse類對象m入棧的時候,總是入

Android使用ZXing生成支持加入Logo圖案

over rmi api note sta size argb_8888 reat for循環 ZXing是谷歌的一個開源庫。能夠用來生成二維碼、掃描二維碼。本文所介紹的是第一部分。 首先上效果圖: ZXing相關各種文件官方下載地址:https://g

題目一使用Java實現數組中的查找

ray class 如果 strong www. 循環 順序 選擇 com 考點:數組 題目:二維數組中的查找 描述:在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,

方案優化網站實現掃描碼關註微信公眾號,自動登陸網站並獲取其信息

用戶 class his onerror 就會 openid display 要點 rac 上一篇 《網站實現掃描二維碼關註微信公眾號,自動登陸網站並獲取其信息》 中已經實現用戶掃碼登陸網站並獲取其信息 但是上一篇方案中存在一個問題,也就是文章末尾指出的可以優化的地方(可