高斯积分点
一维、二维、三维高斯积分点及权重-Gauss integrations and weights

Gauss integrations and weights(Containing the program)高斯积分点以及权重目录1.1D bar element(p181 computation mechanics) (2)2.2D triangle element(p230 computation mechanics) (12)3.2D quadrilateral element(p182 computation mechanics) (15)4.3D tetrahedron element(p231 computation mechanics) (17)5.3D hexahedron element (p187 computation mechanics) (19)1.1D bar element(p181 computation mechanics)root3 = 1./sqrt(3.) ; r15 = .2*sqrt(15.)nip = ubound( s , 1 )w = (/5./9.,8./9.,5./9./); v=(/5./9.*w,8./9.*w,5./9.*w/)select case (element)case('line')select case(nip)case(1)s(1,1)=0. ; wt(1)=2.case(2)s(1,1)=root3 ; s(2,1)=-s(1,1) ; wt(1)=1. ; wt(2)=1.case(3)s(1,1)=r15 ; s(2,1)=.0 ; s(3,1)=-s(1,1)wt = wcase(4)s(1,1)=.861136311594053 ; s(2,1)=.339981043584856s(3,1)=-s(2,1) ; s(4,1)=-s(1,1)wt(1)=.347854845137454 ; wt(2)=.652145154862546wt(3)=wt(2) ; wt(4)=wt(1)case(5)s(1,1)=.906179845938664 ; s(2,1)=.538469*********s(3,1)=.0 ; s(4,1)=-s(2,1) ; s(5,1)=-s(1,1)wt(1)=.236926885056189 ; wt(2)=.478628670499366wt(3)=.568888888888889 ; wt(4)=wt(2) ; wt(5)=wt(1)case(6)s(1,1)=.932469514203152 ; s(2,1)=.661209386466265;s(3,1)=.238619186083197s(4,1)=-s(3,1) ; s(5,1)=-s(2,1) ; s(6,1)=-s(1,1)wt(1)=.171324492379170 ; wt(2)=.360761573048139;wt(3)=.467913934572691wt(4)=wt(3); wt(5)=wt(2) ; wt(6)=wt(1)case defaultprint*,"wrong number of integrating points for a line"end select% Copyright (c) 2010, Thomas-Peter Fries, RWTH Aachen University function [xxIntRef, wwIntRef] = IntPoints1DGauss(nQ)% Set Gauss points in 1D reference element from [-1, 1].if nQ == 1Data = [...0.0000000000000000e+000 2.0000000000000000e+000];elseif nQ == 2Data = [...-5.7735026918962573e-001 1.0000000000000000e+0005.7735026918962573e-001 1.0000000000000000e+000];elseif nQ == 3Data = [...-7.7459666924148340e-001 5.5555555555555558e-0010.0000000000000000e+000 8.8888888888888884e-0017.7459666924148340e-001 5.5555555555555558e-001];elseif nQ == 4Data = [...-8.6113631159405257e-001 3.4785484513745385e-001-3.3998104358485626e-001 6.5214515486254609e-0013.3998104358485626e-001 6.5214515486254609e-0018.6113631159405257e-001 3.4785484513745385e-001];elseif nQ == 5Data = [...-9.0617984593866396e-001 2.3692688505618908e-001-5.3846931010568311e-001 4.7862867049936647e-0010.0000000000000000e+000 5.6888888888888889e-0015.3846931010568311e-001 4.7862867049936647e-0019.0617984593866396e-001 2.3692688505618908e-001];elseif nQ == 6Data = [...-9.3246951420315205e-001 1.7132449237917036e-001-6.6120938646626448e-001 3.6076157304813861e-001-2.3861918608319688e-001 4.6791393457269104e-0012.3861918608319688e-001 4.6791393457269104e-0016.6120938646626448e-001 3.6076157304813861e-0019.3246951420315205e-001 1.7132449237917036e-001];elseif nQ == 7Data = [...-9.4910791234275849e-001 1.2948496616886970e-001 -7.4153118559939446e-001 2.7970539148927664e-001 -4.0584515137739718e-001 3.8183005050511892e-001 0.0000000000000000e+000 4.1795918367346940e-001 4.0584515137739718e-001 3.8183005050511892e-001 7.4153118559939446e-001 2.7970539148927664e-001 9.4910791234275849e-001 1.2948496616886970e-001 ];elseif nQ == 8Data = [...-9.6028985649753618e-001 1.0122853629037626e-001 -7.9666647741362673e-001 2.2238103445337448e-001 -5.2553240991632899e-001 3.1370664587788727e-001 -1.8343464249564978e-001 3.6268378337836199e-001 1.8343464249564978e-001 3.6268378337836199e-001 5.2553240991632899e-001 3.1370664587788727e-001 7.9666647741362673e-001 2.2238103445337448e-001 9.6028985649753618e-001 1.0122853629037626e-001 ];elseif nQ == 9Data = [...-9.6816023950762609e-001 8.1274388361574412e-002 -8.3603110732663577e-001 1.8064816069485740e-001 -6.1337143270059036e-001 2.6061069640293544e-001 -3.2425342340380892e-001 3.1234707704000286e-001 0.0000000000000000e+000 3.3023935500125978e-001 3.2425342340380892e-001 3.1234707704000286e-001 6.1337143270059036e-001 2.6061069640293544e-0018.3603110732663577e-001 1.8064816069485740e-0019.6816023950762609e-001 8.1274388361574412e-002 ];elseif nQ == 10Data = [...-9.7390652851717174e-001 6.6671344308688138e-002 -8.6506336668898454e-001 1.4945134915058059e-001 -6.7940956829902444e-001 2.1908636251598204e-001 -4.3339539412924721e-001 2.6926671930999635e-001 -1.4887433898163116e-001 2.9552422471475287e-001 1.4887433898163116e-001 2.9552422471475287e-001 4.3339539412924721e-001 2.6926671930999635e-001 6.7940956829902444e-001 2.1908636251598204e-001 8.6506336668898454e-001 1.4945134915058059e-0019.7390652851717174e-001 6.6671344308688138e-002 ];elseif nQ == 11Data = [...-9.7822865814605697e-001 5.5668567116173663e-002 -8.8706259976809532e-001 1.2558036946490461e-001 -7.3015200557404936e-001 1.8629021092773426e-001 -5.1909612920681181e-001 2.3319376459199048e-001 -2.6954315595234501e-001 2.6280454451024665e-001 0.0000000000000000e+000 2.7292508677790062e-001 2.6954315595234501e-001 2.6280454451024665e-001 5.1909612920681181e-001 2.3319376459199048e-0017.3015200557404936e-001 1.8629021092773426e-0018.8706259976809532e-001 1.2558036946490461e-0019.7822865814605697e-001 5.5668567116173663e-002 ];elseif nQ == 12Data = [...-9.8156063424671924e-001 4.7175336386511828e-002 -9.0411725637047491e-001 1.0693932599531843e-001 -7.6990267419430469e-001 1.6007832854334622e-001 -5.8731795428661737e-001 2.0316742672306592e-001 -3.6783149899818024e-001 2.3349253653835481e-001 -1.2523340851146891e-001 2.4914704581340277e-001 1.2523340851146891e-001 2.4914704581340277e-001 3.6783149899818024e-001 2.3349253653835481e-001 5.8731795428661737e-001 2.0316742672306592e-001 7.6990267419430469e-001 1.6007832854334622e-001 9.0411725637047491e-001 1.0693932599531843e-001 9.8156063424671924e-001 4.7175336386511828e-002 ];elseif nQ == 13Data = [...-9.8418305471858814e-001 4.0484004765315877e-002 -9.1759839922297792e-001 9.2121499837728452e-002 -8.0157809073330988e-001 1.3887351021978725e-001 -6.4234933944034023e-001 1.7814598076194574e-001 -4.4849275103644681e-001 2.0781604753688851e-001 -2.3045831595513477e-001 2.2628318026289723e-001 0.0000000000000000e+000 2.3255155323087390e-001 2.3045831595513477e-001 2.2628318026289723e-001 4.4849275103644681e-001 2.0781604753688851e-001 6.4234933944034023e-001 1.7814598076194574e-001 8.0157809073330988e-001 1.3887351021978725e-0019.1759839922297792e-001 9.2121499837728452e-002 9.8418305471858814e-001 4.0484004765315877e-002 ];elseif nQ == 14Data = [...-9.8628380869681231e-001 3.5119460331751860e-002 -9.2843488366357352e-001 8.0158087159760208e-002 -8.2720131506976502e-001 1.2151857068790319e-001 -6.8729290481168548e-001 1.5720316715819355e-001 -5.1524863635815410e-001 1.8553839747793782e-001 -3.1911236892788974e-001 2.0519846372129560e-001 -1.0805494870734367e-001 2.1526385346315779e-001 1.0805494870734367e-001 2.1526385346315779e-001 3.1911236892788974e-001 2.0519846372129560e-0015.1524863635815410e-001 1.8553839747793782e-0016.8729290481168548e-001 1.5720316715819355e-0018.2720131506976502e-001 1.2151857068790319e-0019.2843488366357352e-001 8.0158087159760208e-002 9.8628380869681231e-001 3.5119460331751860e-002 ];elseif nQ == 15Data = [...-9.8799251802048538e-001 3.0753241996117269e-002 -9.3727339240070595e-001 7.0366047488108124e-002 -8.4820658341042721e-001 1.0715922046717194e-001 -7.2441773136017007e-001 1.3957067792615432e-001 -5.7097217260853883e-001 1.6626920581699392e-001 -3.9415134707756339e-001 1.8616100001556221e-001 -2.0119409399743449e-001 1.9843148532711158e-001 0.0000000000000000e+000 2.0257824192556129e-0012.0119409399743449e-001 1.9843148532711158e-0013.9415134707756339e-001 1.8616100001556221e-001 5.7097217260853883e-001 1.6626920581699392e-0017.2441773136017007e-001 1.3957067792615432e-0018.4820658341042721e-001 1.0715922046717194e-0019.3727339240070595e-001 7.0366047488108124e-002 9.8799251802048538e-001 3.0753241996117269e-002 ];elseif nQ == 16Data = [...-9.8940093499164994e-001 2.7152459411754096e-002 -9.4457502307323260e-001 6.2253523938647894e-002 -8.6563120238783176e-001 9.5158511682492786e-002 -7.5540440835500300e-001 1.2462897125553388e-001-6.1787624440264377e-001 1.4959598881657674e-001 -4.5801677765722737e-001 1.6915651939500254e-001 -2.8160355077925892e-001 1.8260341504492358e-001 -9.5012509837637427e-002 1.8945061045506850e-001 9.5012509837637427e-002 1.8945061045506850e-001 2.8160355077925892e-001 1.8260341504492358e-001 4.5801677765722737e-001 1.6915651939500254e-0016.1787624440264377e-001 1.4959598881657674e-0017.5540440835500300e-001 1.2462897125553388e-0018.6563120238783176e-001 9.5158511682492786e-0029.4457502307323260e-001 6.2253523938647894e-002 9.8940093499164994e-001 2.7152459411754096e-002 ];elseif nQ == 17Data = [...-9.9057547531441736e-001 2.4148302868547931e-002 -9.5067552176876780e-001 5.5459529373987203e-002 -8.8023915372698591e-001 8.5036148317179178e-002 -7.8151400389680137e-001 1.1188384719340397e-001 -6.5767115921669084e-001 1.3513636846852548e-001 -5.1269053708647694e-001 1.5404576107681028e-001 -3.5123176345387630e-001 1.6800410215645004e-001 -1.7848418149584788e-001 1.7656270536699264e-0010.0000000000000000e+000 1.7944647035620653e-0011.7848418149584788e-001 1.7656270536699264e-001 3.5123176345387630e-001 1.6800410215645004e-0015.1269053708647694e-001 1.5404576107681028e-0016.5767115921669084e-001 1.3513636846852548e-0017.8151400389680137e-001 1.1188384719340397e-0018.8023915372698591e-001 8.5036148317179178e-0029.5067552176876780e-001 5.5459529373987203e-002 9.9057547531441736e-001 2.4148302868547931e-002 ];elseif nQ == 18Data = [...-9.9156516842093090e-001 2.1616013526483312e-002 -9.5582394957139771e-001 4.9714548894969797e-002 -8.9260246649755570e-001 7.6425730254889052e-002 -8.0370495897252314e-001 1.0094204410628717e-001 -6.9168704306035322e-001 1.2255520671147846e-001 -5.5977083107394754e-001 1.4064291467065065e-001 -4.1175116146284263e-001 1.5468467512626524e-001 -2.5188622569150554e-001 1.6427648374583273e-001 -8.4775013041735292e-002 1.6914238296314360e-0018.4775013041735292e-002 1.6914238296314360e-001 2.5188622569150554e-001 1.6427648374583273e-0014.1175116146284263e-001 1.5468467512626524e-0015.5977083107394754e-001 1.4064291467065065e-0016.9168704306035322e-001 1.2255520671147846e-001 8.0370495897252314e-001 1.0094204410628717e-0018.9260246649755570e-001 7.6425730254889052e-0029.5582394957139771e-001 4.9714548894969797e-002 9.9156516842093090e-001 2.1616013526483312e-002 ];elseif nQ == 19Data = [...-9.9240684384358435e-001 1.9461788229726478e-002 -9.6020815213483002e-001 4.4814226765699600e-002 -9.0315590361481790e-001 6.9044542737641226e-002 -8.2271465653714282e-001 9.1490021622449999e-002 -7.2096617733522939e-001 1.1156664554733399e-001 -6.0054530466168110e-001 1.2875396253933621e-001 -4.6457074137596099e-001 1.4260670217360660e-001 -3.1656409996362989e-001 1.5276604206585967e-001 -1.6035864564022539e-001 1.5896884339395434e-0010.0000000000000000e+000 1.6105444984878370e-0011.6035864564022539e-001 1.5896884339395434e-0013.1656409996362989e-001 1.5276604206585967e-0014.6457074137596099e-001 1.4260670217360660e-0016.0054530466168110e-001 1.2875396253933621e-0017.2096617733522939e-001 1.1156664554733399e-0018.2271465653714282e-001 9.1490021622449999e-0029.0315590361481790e-001 6.9044542737641226e-002 9.6020815213483002e-001 4.4814226765699600e-002 9.9240684384358435e-001 1.9461788229726478e-002 ];elseif nQ == 20Data = [...-9.9312859918509488e-001 1.7614007139152118e-002 -9.6397192727791381e-001 4.0601429800386939e-002 -9.1223442825132595e-001 6.2672048334109068e-002 -8.3911697182221878e-001 8.3276741576704755e-002 -7.4633190646015080e-001 1.0193011981724044e-001 -6.3605368072651502e-001 1.1819453196151841e-001 -5.1086700195082702e-001 1.3168863844917664e-001 -3.7370608871541955e-001 1.4209610931838204e-001 -2.2778585114164507e-001 1.4917298647260374e-001 -7.6526521133497338e-002 1.5275338713072584e-0017.6526521133497338e-002 1.5275338713072584e-0012.2778585114164507e-001 1.4917298647260374e-0013.7370608871541955e-001 1.4209610931838204e-0015.1086700195082702e-001 1.3168863844917664e-0016.3605368072651502e-001 1.1819453196151841e-0017.4633190646015080e-001 1.0193011981724044e-0018.3911697182221878e-001 8.3276741576704755e-0029.1223442825132595e-001 6.2672048334109068e-0029.6397192727791381e-001 4.0601429800386939e-0029.9312859918509488e-001 1.7614007139152118e-002];elseif nQ == 21Data = [...-9.9375217062038945e-001 1.6017228257774335e-002-9.6722683856630631e-001 3.6953789770852494e-002-9.2009933415040079e-001 5.7134425426857205e-002-8.5336336458331730e-001 7.6100113628379304e-002-7.6843996347567789e-001 9.3444423456033862e-002-6.6713880419741234e-001 1.0879729916714838e-001-5.5161883588721983e-001 1.2183141605372853e-001-4.2434212020743878e-001 1.3226893863333747e-001-2.8802131680240106e-001 1.3988739479107315e-001-1.4556185416089507e-001 1.4452440398997005e-0010.0000000000000000e+000 1.4608113364969041e-0011.4556185416089507e-001 1.4452440398997005e-0012.8802131680240106e-001 1.3988739479107315e-0014.2434212020743878e-001 1.3226893863333747e-0015.5161883588721983e-001 1.2183141605372853e-0016.6713880419741234e-001 1.0879729916714838e-0017.6843996347567789e-001 9.3444423456033862e-0028.5336336458331730e-001 7.6100113628379304e-0029.2009933415040079e-001 5.7134425426857205e-0029.6722683856630631e-001 3.6953789770852494e-0029.9375217062038945e-001 1.6017228257774335e-002];elseerror(['The number ' num2str(nQ) ' is not implemented.']) endxxIntRef = Data(:, 1)';wwIntRef = Data(:, 2)';% % Plot situation.% reset(cla), reset(clf), hold on% a = plot(xxIntRef, zeros(size(xxIntRef)), 'k*'); % set(a, 'LineWidth', 2, 'MarkerSize', 15)% a = line([-1 1], [0 0]);% set(a, 'LineWidth', 2, 'Color', 'k')% box on, axis equal, axis([-1 1 -0.1 0.1])2.2D triangle element(p230 computation mechanics)Order n Location ξLocation ηWeight wcase('triangle')select case(nip)case(1) ! for triangles weights multiplied by .5s(1,1)=1./3. ; s(1,2)=1./3. ; wt(1)= .5case(3)s(1,1)=.5 ; s(1,2)=.5 ; s(2,1)=.5s(2,2)=0.; s(3,1)=0. ; s(3,2)=.5wt(1)=1./3. ; wt(2)=wt(1) ; wt(3)=wt(1) ; wt = .5*wtcase(6)s(1,1)=.816847572980459 ; s(1,2)=.091576213509771s(2,1)=s(1,2); s(2,2)=s(1,1) ; s(3,1)=s(1,2); s(3,2)=s(1,2)s(4,1)=.108103018168070 ; s(4,2)=.445948*********s(5,1)=s(4,2) ; s(5,2)=s(4,1) ; s(6,1)=s(4,2) ; s(6,2)=s(4,2)wt(1)=.109951743655322 ; wt(2)=wt(1) ; wt(3)=wt(1)wt(4)=.223381589678011 ; wt(5)=wt(4) ; wt(6)=wt(4) ; wt = .5*wt case(7)s(1,1)=1./3. ; s(1,2)=1./3.;s(2,1)=.797426985353087 ;s(2,2)=.101286507323456 s(3,1)=s(2,2) ; s(3,2)=s(2,1) ; s(4,1)=s(2,2) ; s(4,2)=s(2,2)s(5,1)=.470142064105115 ; s(5,2)=.059715871789770s(6,1)=s(5,2) ; s(6,2)=s(5,1); s(7,1)=s(5,1); s(7,2)=s(5,1)wt(1)=.225 ; wt(2)=.125939180544827 ; wt(3)=wt(2); wt(4)=wt(2)wt(5)=.132394152788506; wt(6)=wt(5) ; wt(7)=wt(5) ;wt = .5*wt case(12)s(1,1)=.873821971016996 ; s(1,2)=.063089014491502s(2,1)=s(1,2) ; s(2,2)=s(1,1); s(3,1)=s(1,2) ; s(3,2)=s(1,2)s(4,1)=.501426509658179 ; s(4,2)=.249286745170910s(5,1)=s(4,2); s(5,2)=s(4,1) ; s(6,1)=s(4,2) ; s(6,2)=s(4,2)s(7,1)=.636502499121399 ; s(7,2)=.310352451033785s(8,1)=s(7,1) ; s(8,2)=.053145049844816 ; s(9,1)=s(7,2) ; s(9,2)=s(7,1)s(10,1)=s(7,2) ; s(10,2)=s(8,2) ; s(11,1)=s(8,2); s(11,2)=s(7,1)s(12,1)=s(8,2) ; s(12,2)=s(7,2)wt(1)=.050844906370207 ; wt(2)=wt(1); wt(3)=wt(1)wt(4)=.116786275726379 ; wt(5)=wt(4); wt(6)=wt(4)wt(7)=.082851075618374 ; wt(8:12)=wt(7) ; wt = .5*wtcase(16)s(1,1)=1./3. ; s(1,2)=1./3. ; s(2,1)=.658861384496478s(2,2)=.170569307751761 ; s(3,1)=s(2,2) ; s(3,2)=s(2,1)s(4,1)=s(2,2) ; s(4,2)=s(2,2)s(5,1)=.898905543365938 ; s(5,2)=.050547228317031s(6,1)=s(5,2); s(6,2)=s(5,1) ; s(7,1)=s(5,2) ; s(7,2)=s(5,2)s(8,1)=.081414823414554; s(8,2)=.459292588292723s(9,1)=s(8,2) ; s(9,2)=s(8,1); s(10,1)=s(8,2) ; s(10,2)=s(8,2)s(11,1)=.008394777409958; s(11,2)=.263112829634638s(12,1)=s(11,1) ; s(12,2)=.728492392955404s(13,1)=s(11,2) ; s(13,2)=s(11,1) ; s(14,1)=s(11,2); s(14,2)=s(12,2)s(15,1)=s(12,2) ; s(15,2)=s(11,1) ; s(16,1)=s(12,2) ; s(16,2)=s(11,2)wt(1)=.144315607677787 ; wt(2)=.103217370534718 ; wt(3)=wt(2); wt(4)=wt(2) wt(5)=.032458497623198 ; wt(6)=wt(5) ; wt(7)=wt(5)wt(8)=.095091634267284 ; wt(9)=wt(8) ; wt(10)=wt(8)wt(11)=.027230314174435 ; wt(12:16) = wt(11) ; wt = .5*wtcase defaultprint*,"wrong number of integrating points for a triangle"end select3.2D quadrilateral element(p182 computation mechanics)case ('quadrilateral')select case (nip)case(1)s(1,1) = .0 ; wt(1) = 4.case(4)s(1,1)=-root3; s(1,2)= root3s(2,1)= root3; s(2,2)= root3s(3,1)=-root3; s(3,2)=-root3s(4,1)= root3; s(4,2)=-root3wt = 1.0case(9)s(1:7:3,1) = -r15; s(2:8:3,1) = .0s(3:9:3,1) = r15; s(1:3,2) = r15s(4:6,2) = .0 ; s(7:9,2) =-r15wt= vcase defaultprint*,"wrong number of integrating points for a quadrilateral"end select4.3D tetrahedron element(p231 computation mechanics)case('tetrahedron')select case(nip)case(1) ! for tetrahedra weights multiplied by 1/6s(1,1)=.25 ; s(1,2)=.25 ; s(1,3)=.25 ; wt(1)=1./6.case(4)s(1,1)=.58541020 ; s(1,2)=.13819660 ; s(1,3)=s(1,2)s(2,2)=s(1,1) ; s(2,3)=s(1,2) ; s(2,1)=s(1,2)s(3,3)=s(1,1) ; s(3,1)=s(1,2) ; s(3,2)=s(1,2)s(4,1)=s(1,2) ; s(4,2)=s(1,2) ; s(4,3)=s(1,2) ; wt(1:4)=.25/6.case(5)s(1,1)=.25 ; s(1,2)=.25 ; s(1,3)=.25 ; s(2,1)=.5s(2,2)=1./6. ; s(2,3)=s(2,2); s(3,2)=.5s(3,3)=1./6. ; s(3,1)=s(3,3) ; s(4,3)=.5s(4,1)=1./6. ; s(4,2)=s(4,1); s(5,1)=1./6.s(5,2)=s(5,1) ; s(5,3)=s(5,1)wt(1)=-.8 ; wt(2)=9./20. ; wt(3:5)=wt(2) ; wt =wt/6.case(6)wt = 4./3. ; s(6,3) = 1.s(1,1)=-1. ;s(2,1)=1. ; s(3,2)=-1. ; s(4,2)=1. ; s(5,3)=-1.case defaultprint*,"wrong number of integrating points for a tetrahedron"end select5.3D hexahedron element (p187 computation mechanics)case('hexahedron')select case ( nip )case(1)s(1,1) = .0 ; wt(1) = 8.case(8)s(1,1)= root3;s(1,2)= root3;s(1,3)= root3s(2,1)= root3;s(2,2)= root3;s(2,3)=-root3s(3,1)= root3;s(3,2)=-root3;s(3,3)= root3s(4,1)= root3;s(4,2)=-root3;s(4,3)=-root3s(5,1)=-root3;s(5,2)= root3;s(5,3)= root3s(6,1)=-root3;s(6,2)=-root3;s(6,3)= root3s(7,1)=-root3;s(7,2)= root3;s(7,3)=-root3s(8,1)=-root3;s(8,2)=-root3;s(8,3)=-root3wt = 1.0case(14)b=0.795822426 ; c=0.758786911wt(1:6)=0.886426593 ; wt(7:) = 0.335180055s(1,1)=-b ; s(2,1)=b ; s(3,2)=-b ; s(4,2)=bs(5,3)=-b ; s(6,3)=bs(7:,:) = cs(7,1)=-c ; s(7,2)=-c ; s(7,3)=-c ; s(8,2)=-c ; s(8,3)=-cs(9,1)=-c ; s(9,3)=-c ; s(10,3)=-c; s(11,1)=-cs(11,2)=-c ; s(12,2)=-c ; s(13,1)=-ccase(15)b=1. ; c=0.674199862wt(1)=1.564444444 ; wt(2:7)=0.355555556 ; wt(8:15)=0.537777778 s(2,1)=-b ; s(3,1)=b ; s(4,2)=-b ; s(5,2)=bs(6,3)=-b ; s(7,3)=b ; s(8:,:)=c ; s(8,1)=-cs(8,2)=-c ; s(8,3)=-c ; s(9,2)=-c ; s(9,3)=-cs(10,1)=-c ; s(10,3)=-c ; s(11,3)=-c ; s(12,1)=-cs(12,2)=-c ; s(13,2)=-c ; s(14,1)=-ccase(27)wt = (/5./9.*v,8./9.*v,5./9.*v/)s(1:7:3,1) = -r15; s(2:8:3,1) = .0s(3:9:3,1) = r15; s(1:3,3) = r15s(4:6,3) = .0 ; s(7:9,3) =-r15s(1:9,2) = -r15s(10:16:3,1) = -r15; s(11:17:3,1) = .0s(12:18:3,1) = r15; s(10:12,3) = r15s(13:15,3) = .0 ; s(16:18,3) =-r15s(10:18,2) = .0s(19:25:3,1) = -r15; s(20:26:3,1) = .0s(21:27:3,1) = r15; s(19:21,3) = r15s(22:24,3) = .0 ; s(25:27,3) =-r15s(19:27,2) = r15case defaultprint*,"wrong number of integrating points for a hexahedron"end select。
高斯积分点以及有限元中应用

积分阶次的选择直接影响计算的精度和计算工 作量。
积分阶次的选择必须保证积分的精度。(完全 精确积分)
很多情况下,实际选取的高斯积分点数低于精 确积分的要求,往往可以取得较完全精确积分
更好的精度。(减缩积分)
完全精确积分
减缩积分
线性单元
二次单元
有限元分析主要步骤
我们知道,经过单元方程的组装以后,结构静力学有 限元方程如下
高斯积分法
例如,n=1时 不论f(ξ)的次数是0还是1,只需取H1=2,
ξ1=0,上式均是精确成立的。因为
1
I 1 f ( )d H1 f (1 )
f ( ) C0 C1
1
I 1 f ( )d 2C0 2 • f (0)
高斯积分法
当n=2时,能保证式子精确成立所允许的多项式 的最高次数是3,此时,f(ξ)的通式为
{F}=[K]{U} 其中,{F}----节点载荷向量;[K]---总体刚度矩阵; {U}---节点位移向量 在引入边界条件以后,解上述方程组,就可以得到节 点位移向量{U}.这是求解结构静力学方程组所得到的第一 组解,它是最精确的。 得到节点的位移解后,下面是求取应变解和应力解。 与位移解不同,它们并不是直接在节点上获得,而是首先 在积分点上获得的。
H i H j H k f (i , j , k )
i1 j1 k 1
中的n,m,l是分别关于变量ξ,η,ζ的积分点数目。
各个维数上的积分点数目由各个自变量在被积函数中可能出 现的最高次数分别决定,一般并不要求相同。但为应用方便,常常 在各个方向取相同的积分数,即统一为最高值
1 1
C1
C2
2 2
静电场高斯定理的积分形式

静电场高斯定理的积分形式
高斯定理是用于计算电场强度的重要定理,它可以用积分的形式表示。
通常,它表示为:
E = (1/4πε₀) ∫ρ(r')/|r-r'| dV'
其中,E 是电场强度,ρ(r') 是电荷密度,r 和r' 分别是电场点和电荷位置的矢量,ε₀是真空介电常数,dV' 是电荷所在体积单元的体积。
这个积分表示了电场点周围所有电荷对电场强度的贡献。
在计算电场强度时,可以将电荷分成若干个小体积单元,然后对每个单元分别求解上述积分,最后将所有单元的贡献相加起来,得到电场强度的总值。
注意,高斯定理仅适用于无电荷体积内的电场强度计算。
如果要计算电场强度在有电荷体积外的情况,则应使用莫尔定理。
高斯积分法讲义

多维高斯积分的误差分析
误差来源
误差估计
多维高斯积分的误差主要来源于 数值计算过程中的舍入误差、截 断误差以及算法本身的近似误差。
可以采用误差估计方法对多维高 斯积分的计算结果进行可靠性评 估。常用的误差估计方法包括残 差法、复化法、外推法等。
精度提高
为了提高多维高斯积分的计算精 度,可以采用更高阶的高斯积分 公式、增加随机样本数量、改进 网格划分等方法。同时,针对具 体问题选择合适的算法和参数设 置也是提高精度的关键。
金融学
高斯积分法在金融领域也有 广泛应用,如期权定价、风 险管理、投资组合优化等, 为金融决策提供科学依据。
02
高斯积分法的基本原理
高斯点的选取与性质
高斯点定义
高斯点是在积分区间内选取的一 组离散点,用于近似计算定积分。
高斯点性质
高斯点具有正交性和对称性,使得 在高斯积分法中能够高效地逼近被 积函数。
数值稳定性
在实现过程中,需要注意数值稳定性 问题。由于高斯积分涉及到浮点数运 算,可能会产生舍入误差。因此,在 实现时应选择合适的数值精度,并进 行误差控制。
一维高斯积分的误差分析
误差来源
一维高斯积分的误差主要来源于两个方面:一是由于数值计算引入的舍入误差;二是由于高斯点和权重的选择引 入的截断误差。
权函数的计算通常涉及到正交多项式和递推关系式,需要一定
的数学基础和编程技巧。
高斯积分法的精度与收敛性
01
精度分析
高斯积分法具有高精度逼近被积 函数的能力,其误差随着高斯点 数量的增加而减小。
收敛性分析
02
03
稳定性分析
高斯积分法具有指数级收敛速度, 即当高斯点数量增加时,误差呈 指数级下降。
高斯积分点以及有限元中应用

有限元分析主要步骤
所谓积分点是指,在对单元建立方程时,例如刚度 矩阵是需要通过积分而得到的,而积分时为了能够方便计 算,大多数有限元软件采用了所谓高斯积分的方式,即在 单元内分布一些高斯点
这样,有限元软件会首先获得这些高斯点的应力和应 变,其方法如下: 在高斯积分点上,依据几何方程:{ε }={B}{U} 计算出高斯积分点上的应变:ε 然后基于虎克定律及几何方程推导的结果来计算高斯积
1 1
nn
f ( ,)dd
1 1
H i H j f (i , j )
i1 j1
1 1 1
nnn
f ( ,, )ddd
1 1 1
H i H j H k f (i , j , k )
i1 j 1 k 1
高斯积分法
更好的精度。(减缩积分)
完全精确积分
减缩积分
线性单元
二次单元
有限元分析主要步骤
我们知道,经过单元方程的组装以后,结构静力学有 限元方程如下
{F}=[K]{U} 其中,{F}----节点载荷向量;[K]---总体刚度矩阵; {U}---节点位移向量 在引入边界条件以后,解上述方程组,就可以得到节 点位移向量{U}.这是求解结构静力学方程组所得到的第一 组解,它是最精确的。 得到节点的位移解后,下面是求取应变解和应力解。 与位移解不同,它们并不是直接在节点上获得,而是首先 在积分点上获得的。
H 2 (C0
C1
C2
2 2
C3
3 2
)
高斯积分法
,
,
为了在C0~C3取任意值(包括取零值在内)时公式(f)是精 确的,显然应有
H1 H2 2
高斯积分的计算方法

高斯积分的计算方法在数学领域内,高斯积分是一类经典的数学积分,它不仅深受广大数学学者的喜爱,更在科学与工程领域内应用广泛。
高斯积分的计算方法在数学的发展史上也有着突出的地位。
高斯积分的概念及应用高斯积分是计算圆柱体体积的重要方法之一,它起源于高斯儿时曾在数学竞赛时受到圆柱体体积的启发,从而产生了求出圆柱体体积的积分方法,这就是高斯积分。
高斯积分包含两种类型,第一类和第二类。
第一类和第二类高斯积分分别用于计算复平面中的任意四边形及半平面上的积分问题,是极其有用的数学工具。
在物理学中,高斯积分也运用得非常广泛,可以用来求解电场、磁场、热力学等问题。
高斯积分的计算一般多使用复数表示,复数的实部和虚部对应于二维空间中的横坐标和纵坐标。
对于复平面上的第一类高斯积分,可以利用复变量的奇偶性质以及圆形映射将圆上的高斯积分转化为实轴上的积分问题,从进而求解高斯积分。
对于第二类高斯积分,通常采用变形的方式将积分式转化为反常积分,然后再利用数值解法或者级数展开法求解反常积分。
具体而言,我们将复平面的积分路径展开为两条道路,设积分函数为f(z),则当选取的路径使得沿路径的积分无穷大时,在道路由初始点z1到终止点z2的方向上分别分割成R和r两段,则有以下套路的计算方式:∫(z1,z2)f(z)dz = ∫R f(z)dz + ∫r f(z)dz其中∫R f(z)dz表示对有限的路径积分进行求解,而∫r f(z)dz则表示计算路径积分的一部分,因此在变形之后我们只需要将∫r f(z)dz 根据变形后的路径进行求解即可。
总结高斯积分作为经典数学积分,在物理、工程以及金融领域都有着广泛的应用。
高斯积分的计算也有着不同的方法,需要根据实际问题的需求不断灵活运用。
不过,绝大多数情况下我们都可以采用圆形映射的方法统一化计算,以及采用变形的方式将积分式转化为反常积分进行求解。
高斯积分

所以,应取
H1 H 2 1.000,000,000,0
高斯积分法
n个插值结点非等距分布
结点和积分权系数可以查表
1
1
f ( )d Ai f (i )
i 1
n
高斯积分法
二维积分的高斯公式
以一维高斯积分公式为基础,导出二维及三维公式。求二维 重积分 1 1 f ( , )dd
n点高斯积分
若构造的n+1个节点的插值求积公式,则可将 f (x) = 1, x, x2, …, x2n+1 代入求积公式可求解,
b a 1dx c0 c1++cn b 不是线性方程组, xdx c0 x0 c1 x1++cn xn a 不易求解。 b 2 n 1 2 n 1 x 2 n 1dx c0 x0 c1 x12 n 1++cn xn a
高斯积分法
例如,n=1时 不论f(ξ )的次数是0还是1,只需取H1=2, ξ 1=0,上式均是精确成立的。因为
I f ( )d H1 f (1 )
1 1
f ( ) C0 C1
I f ( )d 2C0 2 f (0)
1
1
高斯积分法
当n=2时,能保证式子精确成立所允许的多项式 的最高次数是3,此时,f(ξ)的通式为
1
1
1
1 1 1
f ( ,, )ddd
其中被积分函数f(ξ ,η ,ζ )一般是很 复杂的,即使能够得出它的显式,其积分也 是很繁的。因此,一般用数值积分来代替函 数的定积分。
高斯积分法
数值积分:在积分区域内按一定规则选出 一些点,称为积分点,算出被积函数f(ξ , η ,ζ )在这些积分点处的值,然后再乘以相 应的加权系数并求和,作为近似的积分值。
一维、二维、三维高斯积分点及权重-Gaussintegrationsandweights

Gauss integrations and weights(Containing the program)高斯积分点以及权重目录1.1D bar element(p181 computation mechanics) (2)2.2D triangle element(p230 computation mechanics) (12)3.2D quadrilateral element(p182 computation mechanics) (15)4.3D tetrahedron element(p231 computation mechanics) (17)5.3D hexahedron element (p187 computation mechanics) (19)1.1D bar element(p181 computation mechanics)Order n Accuracy gradeLocation ξWeight w (2*n-1)1 1 1 0.0 2.02 3 1 1.02 1/√3 1.03 5 15/9-2 0.0 8/93 √0.6 5/94 7 1 0.861136311594053 0.3478548451374542 0.339981043584856 0.6521451548625463 -0.339981043584856 0.6521451548625464 -0.861136311594053 0.3478548451374545 9 1 0.906179845938664 0.2369268850561892 0.538469310105683 0.4786286704993663 0 0.5688888888888894 -0.538469********* 0.4786286704993665 -0.906179845938664 0.2369268850561896 11 1 0.932469514203152 0.1713244923791702 0.661209386466265 0.3607615730481393 0.238619186083197 0.4679139345726914 -0.238619186083197 0.4679139345726915 -0.661209386466265 0.3607615730481396 -0.932469514203152 0.171324492379170root3 = 1./sqrt(3.) ; r15 = .2*sqrt(15.)nip = ubound( s , 1 )w = (/5./9.,8./9.,5./9./); v=(/5./9.*w,8./9.*w,5./9.*w/) select case (element)case('line')select case(nip)case(1)s(1,1)=0. ; wt(1)=2.case(2)s(1,1)=root3 ; s(2,1)=-s(1,1) ; wt(1)=1. ; wt(2)=1.case(3)s(1,1)=r15 ; s(2,1)=.0 ; s(3,1)=-s(1,1)wt = wcase(4)s(1,1)=.861136311594053 ; s(2,1)=.339981043584856s(3,1)=-s(2,1) ; s(4,1)=-s(1,1)wt(1)=.347854845137454 ; wt(2)=.652145154862546wt(3)=wt(2) ; wt(4)=wt(1)case(5)s(1,1)=.906179845938664 ; s(2,1)=.538469*********s(3,1)=.0 ; s(4,1)=-s(2,1) ; s(5,1)=-s(1,1)wt(1)=.236926885056189 ; wt(2)=.478628670499366wt(3)=.568888888888889 ; wt(4)=wt(2) ; wt(5)=wt(1)case(6)s(1,1)=.932469514203152 ;s(2,1)=.661209386466265;s(3,1)=.238619186083197s(4,1)=-s(3,1) ; s(5,1)=-s(2,1) ; s(6,1)=-s(1,1)wt(1)=.171324492379170 ; wt(2)=.360761573048139;wt(3)=.467913934572691wt(4)=wt(3); wt(5)=wt(2) ; wt(6)=wt(1)case defaultprint*,"wrong number of integrating points for a line"end select% Copyright (c) 2010, Thomas-Peter Fries, RWTH Aachen Universityfunction [xxIntRef, wwIntRef] = IntPoints1DGauss(nQ)% Set Gauss points in 1D reference element from [-1, 1].if nQ == 1Data = [...0.0000000000000000e+000 2.0000000000000000e+000];elseif nQ == 2Data = [...-5.7735026918962573e-001 1.0000000000000000e+0005.7735026918962573e-001 1.0000000000000000e+000];elseif nQ == 3Data = [...-7.7459666924148340e-001 5.5555555555555558e-0010.0000000000000000e+000 8.8888888888888884e-0017.7459666924148340e-001 5.5555555555555558e-001];elseif nQ == 4Data = [...-8.6113631159405257e-001 3.4785484513745385e-001-3.3998104358485626e-001 6.5214515486254609e-0013.3998104358485626e-001 6.5214515486254609e-0018.6113631159405257e-001 3.4785484513745385e-001];elseif nQ == 5Data = [...-9.0617984593866396e-001 2.3692688505618908e-001-5.3846931010568311e-001 4.7862867049936647e-0010.0000000000000000e+000 5.6888888888888889e-0015.3846931010568311e-001 4.7862867049936647e-0019.0617984593866396e-001 2.3692688505618908e-001];elseif nQ == 6Data = [...-9.3246951420315205e-001 1.7132449237917036e-001-6.6120938646626448e-001 3.6076157304813861e-001-2.3861918608319688e-001 4.6791393457269104e-0012.3861918608319688e-001 4.6791393457269104e-0016.6120938646626448e-001 3.6076157304813861e-0019.3246951420315205e-001 1.7132449237917036e-001];elseif nQ == 7Data = [...-9.4910791234275849e-001 1.2948496616886970e-001-7.4153118559939446e-001 2.7970539148927664e-001-4.0584515137739718e-001 3.8183005050511892e-0010.0000000000000000e+000 4.1795918367346940e-0014.0584515137739718e-001 3.8183005050511892e-0017.4153118559939446e-001 2.7970539148927664e-0019.4910791234275849e-001 1.2948496616886970e-001];elseif nQ == 8Data = [...-9.6028985649753618e-001 1.0122853629037626e-001-7.9666647741362673e-001 2.2238103445337448e-001-5.2553240991632899e-001 3.1370664587788727e-001-1.8343464249564978e-001 3.6268378337836199e-0011.8343464249564978e-001 3.6268378337836199e-0015.2553240991632899e-001 3.1370664587788727e-0017.9666647741362673e-001 2.2238103445337448e-0019.6028985649753618e-001 1.0122853629037626e-001];elseif nQ == 9Data = [...-9.6816023950762609e-001 8.1274388361574412e-002-8.3603110732663577e-001 1.8064816069485740e-001-6.1337143270059036e-001 2.6061069640293544e-001-3.2425342340380892e-001 3.1234707704000286e-0010.0000000000000000e+000 3.3023935500125978e-0013.2425342340380892e-001 3.1234707704000286e-0016.1337143270059036e-001 2.6061069640293544e-0018.3603110732663577e-001 1.8064816069485740e-0019.6816023950762609e-001 8.1274388361574412e-002];elseif nQ == 10Data = [...-9.7390652851717174e-001 6.6671344308688138e-002-8.6506336668898454e-001 1.4945134915058059e-001-6.7940956829902444e-001 2.1908636251598204e-001-4.3339539412924721e-001 2.6926671930999635e-001-1.4887433898163116e-001 2.9552422471475287e-0011.4887433898163116e-0012.9552422471475287e-0014.3339539412924721e-001 2.6926671930999635e-0016.7940956829902444e-001 2.1908636251598204e-0018.6506336668898454e-001 1.4945134915058059e-0019.7390652851717174e-001 6.6671344308688138e-002];elseif nQ == 11Data = [...-9.7822865814605697e-001 5.5668567116173663e-002-8.8706259976809532e-001 1.2558036946490461e-001-7.3015200557404936e-001 1.8629021092773426e-001-5.1909612920681181e-001 2.3319376459199048e-001-2.6954315595234501e-001 2.6280454451024665e-0010.0000000000000000e+000 2.7292508677790062e-0012.6954315595234501e-001 2.6280454451024665e-0015.1909612920681181e-001 2.3319376459199048e-0017.3015200557404936e-001 1.8629021092773426e-0018.8706259976809532e-001 1.2558036946490461e-0019.7822865814605697e-001 5.5668567116173663e-002];elseif nQ == 12Data = [...-9.8156063424671924e-001 4.7175336386511828e-002-9.0411725637047491e-001 1.0693932599531843e-001-7.6990267419430469e-001 1.6007832854334622e-001-5.8731795428661737e-001 2.0316742672306592e-001-3.6783149899818024e-001 2.3349253653835481e-001-1.2523340851146891e-001 2.4914704581340277e-0011.2523340851146891e-0012.4914704581340277e-0013.6783149899818024e-001 2.3349253653835481e-0015.8731795428661737e-001 2.0316742672306592e-0017.6990267419430469e-001 1.6007832854334622e-0019.0411725637047491e-001 1.0693932599531843e-0019.8156063424671924e-001 4.7175336386511828e-002];elseif nQ == 13Data = [...-9.8418305471858814e-001 4.0484004765315877e-002-9.1759839922297792e-001 9.2121499837728452e-002-8.0157809073330988e-001 1.3887351021978725e-001-6.4234933944034023e-001 1.7814598076194574e-001-4.4849275103644681e-001 2.0781604753688851e-001-2.3045831595513477e-001 2.2628318026289723e-0010.0000000000000000e+000 2.3255155323087390e-0012.3045831595513477e-001 2.2628318026289723e-0014.4849275103644681e-001 2.0781604753688851e-0016.4234933944034023e-001 1.7814598076194574e-0018.0157809073330988e-001 1.3887351021978725e-0019.1759839922297792e-001 9.2121499837728452e-0029.8418305471858814e-001 4.0484004765315877e-002];elseif nQ == 14Data = [...-9.8628380869681231e-001 3.5119460331751860e-002-9.2843488366357352e-001 8.0158087159760208e-002-8.2720131506976502e-001 1.2151857068790319e-001-6.8729290481168548e-001 1.5720316715819355e-001-5.1524863635815410e-001 1.8553839747793782e-001-3.1911236892788974e-001 2.0519846372129560e-001-1.0805494870734367e-001 2.1526385346315779e-0011.0805494870734367e-0012.1526385346315779e-0013.1911236892788974e-001 2.0519846372129560e-0015.1524863635815410e-001 1.8553839747793782e-0016.8729290481168548e-001 1.5720316715819355e-0018.2720131506976502e-001 1.2151857068790319e-0019.2843488366357352e-001 8.0158087159760208e-0029.8628380869681231e-001 3.5119460331751860e-002];elseif nQ == 15Data = [...-9.8799251802048538e-001 3.0753241996117269e-002-9.3727339240070595e-001 7.0366047488108124e-002-8.4820658341042721e-001 1.0715922046717194e-001-7.2441773136017007e-001 1.3957067792615432e-001-5.7097217260853883e-001 1.6626920581699392e-001-3.9415134707756339e-001 1.8616100001556221e-001-2.0119409399743449e-001 1.9843148532711158e-0010.0000000000000000e+000 2.0257824192556129e-0012.0119409399743449e-001 1.9843148532711158e-0013.9415134707756339e-001 1.8616100001556221e-0015.7097217260853883e-001 1.6626920581699392e-0017.2441773136017007e-001 1.3957067792615432e-0018.4820658341042721e-001 1.0715922046717194e-0019.3727339240070595e-001 7.0366047488108124e-0029.8799251802048538e-001 3.0753241996117269e-002];elseif nQ == 16Data = [...-9.8940093499164994e-001 2.7152459411754096e-002-9.4457502307323260e-001 6.2253523938647894e-002-8.6563120238783176e-001 9.5158511682492786e-002-7.5540440835500300e-001 1.2462897125553388e-001-6.1787624440264377e-001 1.4959598881657674e-001-4.5801677765722737e-001 1.6915651939500254e-001-2.8160355077925892e-001 1.8260341504492358e-001-9.5012509837637427e-002 1.8945061045506850e-0019.5012509837637427e-002 1.8945061045506850e-0012.8160355077925892e-001 1.8260341504492358e-0014.5801677765722737e-001 1.6915651939500254e-0016.1787624440264377e-001 1.4959598881657674e-0017.5540440835500300e-001 1.2462897125553388e-0018.6563120238783176e-001 9.5158511682492786e-0029.4457502307323260e-001 6.2253523938647894e-0029.8940093499164994e-001 2.7152459411754096e-002];elseif nQ == 17Data = [...-9.9057547531441736e-001 2.4148302868547931e-002-9.5067552176876780e-001 5.5459529373987203e-002-8.8023915372698591e-001 8.5036148317179178e-002-7.8151400389680137e-001 1.1188384719340397e-001-6.5767115921669084e-001 1.3513636846852548e-001-5.1269053708647694e-001 1.5404576107681028e-001-3.5123176345387630e-001 1.6800410215645004e-001-1.7848418149584788e-001 1.7656270536699264e-0010.0000000000000000e+000 1.7944647035620653e-0011.7848418149584788e-001 1.7656270536699264e-0013.5123176345387630e-001 1.6800410215645004e-0015.1269053708647694e-001 1.5404576107681028e-0016.5767115921669084e-001 1.3513636846852548e-0017.8151400389680137e-001 1.1188384719340397e-0018.8023915372698591e-001 8.5036148317179178e-0029.5067552176876780e-001 5.5459529373987203e-0029.9057547531441736e-001 2.4148302868547931e-002];elseif nQ == 18Data = [...-9.9156516842093090e-001 2.1616013526483312e-002-9.5582394957139771e-001 4.9714548894969797e-002-8.9260246649755570e-001 7.6425730254889052e-002-8.0370495897252314e-001 1.0094204410628717e-001-6.9168704306035322e-001 1.2255520671147846e-001-5.5977083107394754e-001 1.4064291467065065e-001-4.1175116146284263e-001 1.5468467512626524e-001-2.5188622569150554e-001 1.6427648374583273e-001-8.4775013041735292e-002 1.6914238296314360e-0018.4775013041735292e-002 1.6914238296314360e-0012.5188622569150554e-001 1.6427648374583273e-0014.1175116146284263e-001 1.5468467512626524e-0015.5977083107394754e-001 1.4064291467065065e-0016.9168704306035322e-001 1.2255520671147846e-0018.0370495897252314e-001 1.0094204410628717e-0018.9260246649755570e-001 7.6425730254889052e-0029.5582394957139771e-001 4.9714548894969797e-0029.9156516842093090e-001 2.1616013526483312e-002];elseif nQ == 19Data = [...-9.9240684384358435e-001 1.9461788229726478e-002-9.6020815213483002e-001 4.4814226765699600e-002-9.0315590361481790e-001 6.9044542737641226e-002-8.2271465653714282e-001 9.1490021622449999e-002-7.2096617733522939e-001 1.1156664554733399e-001-6.0054530466168110e-001 1.2875396253933621e-001-4.6457074137596099e-001 1.4260670217360660e-001-3.1656409996362989e-001 1.5276604206585967e-001-1.6035864564022539e-001 1.5896884339395434e-0010.0000000000000000e+000 1.6105444984878370e-0011.6035864564022539e-001 1.5896884339395434e-0013.1656409996362989e-001 1.5276604206585967e-0014.6457074137596099e-001 1.4260670217360660e-0016.0054530466168110e-001 1.2875396253933621e-0017.2096617733522939e-001 1.1156664554733399e-0018.2271465653714282e-001 9.1490021622449999e-0029.0315590361481790e-001 6.9044542737641226e-0029.6020815213483002e-001 4.4814226765699600e-0029.9240684384358435e-001 1.9461788229726478e-002];elseif nQ == 20Data = [...-9.9312859918509488e-001 1.7614007139152118e-002-9.6397192727791381e-001 4.0601429800386939e-002-9.1223442825132595e-001 6.2672048334109068e-002-8.3911697182221878e-001 8.3276741576704755e-002-7.4633190646015080e-001 1.0193011981724044e-001-6.3605368072651502e-001 1.1819453196151841e-001-5.1086700195082702e-001 1.3168863844917664e-001-3.7370608871541955e-001 1.4209610931838204e-001-2.2778585114164507e-001 1.4917298647260374e-001-7.6526521133497338e-002 1.5275338713072584e-0017.6526521133497338e-002 1.5275338713072584e-0012.2778585114164507e-001 1.4917298647260374e-0013.7370608871541955e-001 1.4209610931838204e-0015.1086700195082702e-001 1.3168863844917664e-0016.3605368072651502e-001 1.1819453196151841e-0017.4633190646015080e-001 1.0193011981724044e-0018.3911697182221878e-001 8.3276741576704755e-0029.1223442825132595e-001 6.2672048334109068e-0029.6397192727791381e-001 4.0601429800386939e-0029.9312859918509488e-001 1.7614007139152118e-002];elseif nQ == 21Data = [...-9.9375217062038945e-001 1.6017228257774335e-002-9.6722683856630631e-001 3.6953789770852494e-002-9.2009933415040079e-001 5.7134425426857205e-002-8.5336336458331730e-001 7.6100113628379304e-002-7.6843996347567789e-001 9.3444423456033862e-002-6.6713880419741234e-001 1.0879729916714838e-001-5.5161883588721983e-001 1.2183141605372853e-001-4.2434212020743878e-001 1.3226893863333747e-001-2.8802131680240106e-001 1.3988739479107315e-001-1.4556185416089507e-001 1.4452440398997005e-0010.0000000000000000e+000 1.4608113364969041e-0011.4556185416089507e-001 1.4452440398997005e-0012.8802131680240106e-001 1.3988739479107315e-0014.2434212020743878e-001 1.3226893863333747e-0015.5161883588721983e-001 1.2183141605372853e-0016.6713880419741234e-001 1.0879729916714838e-0017.6843996347567789e-001 9.3444423456033862e-0028.5336336458331730e-001 7.6100113628379304e-0029.2009933415040079e-001 5.7134425426857205e-0029.6722683856630631e-001 3.6953789770852494e-0029.9375217062038945e-001 1.6017228257774335e-002];elseerror(['The number ' num2str(nQ) ' is not implemented.']) endxxIntRef = Data(:, 1)';wwIntRef = Data(:, 2)';% % Plot situation.% reset(cla), reset(clf), hold on% a = plot(xxIntRef, zeros(size(xxIntRef)), 'k*');% set(a, 'LineWidth', 2, 'MarkerSize', 15)% a = line([-1 1], [0 0]);% set(a, 'LineWidth', 2, 'Color', 'k')% box on, axis equal, axis([-1 1 -0.1 0.1])2.2D triangle element(p230 computation mechanics)Location ξLocation ηWeight w Ordern1(a) 1 1/3 1/3 1.03(c) 1 0.5 0.5 1/32 0.5 0.0 1/33 0.0 0.5 1/34(d) 1 1/3 1/3 -27/482 3/5 1/5 25/483 1/5 1/5 25/484 1/5 3/5 25/486 1 0.816847572980459 0.091576213509771 0.109951743655322*0.52 0.091576213509771 0.816847572980459 0.109951743655322*0.53 0.091576213509771 0.091576213509771 0.109951743655322*0.54 0.108103018168070 0.445948490915965 0.223381589678011*0.55 0.445948********* 0.108103018168070 0.223381589678011*0.56 0.445948********* 0.445948********* 0.223381589678011*0.5 12 1 .873821971016996 0.063089014491502 0.050844906370207*0.52 .063089014491502 0.873821971016996 0.050844906370207*0.53 .063089014491502 0.063089014491502 0.050844906370207*0.54 .501426509658179 0.249286745170910 0.116786275726379*0.5case('triangle')select case(nip)case(1) ! for triangles weights multiplied by .5s(1,1)=1./3. ; s(1,2)=1./3. ; wt(1)= .5case(3)s(1,1)=.5 ; s(1,2)=.5 ; s(2,1)=.5s(2,2)=0.; s(3,1)=0. ; s(3,2)=.5wt(1)=1./3. ; wt(2)=wt(1) ; wt(3)=wt(1) ; wt = .5*wtcase(6)s(1,1)=.816847572980459 ; s(1,2)=.091576213509771s(2,1)=s(1,2); s(2,2)=s(1,1) ; s(3,1)=s(1,2); s(3,2)=s(1,2)s(4,1)=.108103018168070 ; s(4,2)=.445948*********s(5,1)=s(4,2) ; s(5,2)=s(4,1) ; s(6,1)=s(4,2) ; s(6,2)=s(4,2)wt(1)=.109951743655322 ; wt(2)=wt(1) ; wt(3)=wt(1)wt(4)=.223381589678011 ; wt(5)=wt(4) ; wt(6)=wt(4) ; wt = .5*wt case(7)s(1,1)=1./3. ; s(1,2)=1./3.;s(2,1)=.797426985353087 ;s(2,2)=.101286507323456 s(3,1)=s(2,2) ; s(3,2)=s(2,1) ; s(4,1)=s(2,2) ; s(4,2)=s(2,2)s(5,1)=.470142064105115 ; s(5,2)=.059715871789770s(6,1)=s(5,2) ; s(6,2)=s(5,1); s(7,1)=s(5,1); s(7,2)=s(5,1)wt(1)=.225 ; wt(2)=.125939180544827 ; wt(3)=wt(2); wt(4)=wt(2)wt(5)=.132394152788506; wt(6)=wt(5) ; wt(7)=wt(5) ;wt = .5*wt case(12)s(1,1)=.873821971016996 ; s(1,2)=.063089014491502s(2,1)=s(1,2) ; s(2,2)=s(1,1); s(3,1)=s(1,2) ; s(3,2)=s(1,2)s(4,1)=.501426509658179 ; s(4,2)=.249286745170910s(5,1)=s(4,2); s(5,2)=s(4,1) ; s(6,1)=s(4,2) ; s(6,2)=s(4,2)s(7,1)=.636502499121399 ; s(7,2)=.310352451033785s(8,1)=s(7,1) ; s(8,2)=.053145049844816 ; s(9,1)=s(7,2) ; s(9,2)=s(7,1)s(10,1)=s(7,2) ; s(10,2)=s(8,2) ; s(11,1)=s(8,2); s(11,2)=s(7,1)s(12,1)=s(8,2) ; s(12,2)=s(7,2)wt(1)=.050844906370207 ; wt(2)=wt(1); wt(3)=wt(1)wt(4)=.116786275726379 ; wt(5)=wt(4); wt(6)=wt(4)wt(7)=.082851075618374 ; wt(8:12)=wt(7) ; wt = .5*wtcase(16)s(1,1)=1./3. ; s(1,2)=1./3. ; s(2,1)=.658861384496478s(2,2)=.170569307751761 ; s(3,1)=s(2,2) ; s(3,2)=s(2,1)s(4,1)=s(2,2) ; s(4,2)=s(2,2)s(5,1)=.898905543365938 ; s(5,2)=.050547228317031s(6,1)=s(5,2); s(6,2)=s(5,1) ; s(7,1)=s(5,2) ; s(7,2)=s(5,2)s(8,1)=.081414823414554; s(8,2)=.459292588292723s(9,1)=s(8,2) ; s(9,2)=s(8,1); s(10,1)=s(8,2) ; s(10,2)=s(8,2)s(11,1)=.008394777409958; s(11,2)=.263112829634638s(12,1)=s(11,1) ; s(12,2)=.728492392955404s(13,1)=s(11,2) ; s(13,2)=s(11,1) ; s(14,1)=s(11,2); s(14,2)=s(12,2)s(15,1)=s(12,2) ; s(15,2)=s(11,1) ; s(16,1)=s(12,2) ; s(16,2)=s(11,2)wt(1)=.144315607677787 ; wt(2)=.103217370534718 ; wt(3)=wt(2); wt(4)=wt(2) wt(5)=.032458497623198 ; wt(6)=wt(5) ; wt(7)=wt(5)wt(8)=.095091634267284 ; wt(9)=wt(8) ; wt(10)=wt(8)wt(11)=.027230314174435 ; wt(12:16) = wt(11) ; wt = .5*wtcase defaultprint*,"wrong number of integrating points for a triangle"end select3.2D quadrilateral element(p182 computation mechanics)Order n Location ξLocation ηWeight w1 1 0.0 0.0 4.04 1 1.02 1.03 1.04 1.09 1 -√0.6 -√0.6 25/812 -√0.6 0.0 40/813 -√0.6 √0.6 25/814 0.0 -√0.6 40/815 0.0 0.0 64/816 0.0 √0.6 40/81case ('quadrilateral')select case (nip)case(1)s(1,1) = .0 ; wt(1) = 4.case(4)s(1,1)=-root3; s(1,2)= root3s(2,1)= root3; s(2,2)= root3s(3,1)=-root3; s(3,2)=-root3s(4,1)= root3; s(4,2)=-root3wt = 1.0case(9)s(1:7:3,1) = -r15; s(2:8:3,1) = .0s(3:9:3,1) = r15; s(1:3,2) = r15s(4:6,2) = .0 ; s(7:9,2) =-r15wt= vcase defaultprint*,"wrong number of integrating points for a quadrilateral"end select4.3D tetrahedron element(p231 computation mechanics)case('tetrahedron')select case(nip)case(1) ! for tetrahedra weights multiplied by 1/6s(1,1)=.25 ; s(1,2)=.25 ; s(1,3)=.25 ; wt(1)=1./6.case(4)s(1,1)=.58541020 ; s(1,2)=.13819660 ; s(1,3)=s(1,2)s(2,2)=s(1,1) ; s(2,3)=s(1,2) ; s(2,1)=s(1,2)s(3,3)=s(1,1) ; s(3,1)=s(1,2) ; s(3,2)=s(1,2)s(4,1)=s(1,2) ; s(4,2)=s(1,2) ; s(4,3)=s(1,2) ; wt(1:4)=.25/6.case(5)s(1,1)=.25 ; s(1,2)=.25 ; s(1,3)=.25 ; s(2,1)=.5s(2,2)=1./6. ; s(2,3)=s(2,2); s(3,2)=.5s(3,3)=1./6. ; s(3,1)=s(3,3) ; s(4,3)=.5s(4,1)=1./6. ; s(4,2)=s(4,1); s(5,1)=1./6.s(5,2)=s(5,1) ; s(5,3)=s(5,1)wt(1)=-.8 ; wt(2)=9./20. ; wt(3:5)=wt(2) ; wt =wt/6.case(6)wt = 4./3. ; s(6,3) = 1.s(1,1)=-1. ;s(2,1)=1. ; s(3,2)=-1. ; s(4,2)=1. ; s(5,3)=-1.case defaultprint*,"wrong number of integrating points for a tetrahedron"end select5.3D hexahedron element (p187 computation mechanics)Location r Location s Location t Weight w Ordern1 1 0.0 0.0 0.0 8.08 1 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.0case('hexahedron')select case ( nip )case(1)s(1,1) = .0 ; wt(1) = 8.case(8)s(1,1)= root3;s(1,2)= root3;s(1,3)= root3s(2,1)= root3;s(2,2)= root3;s(2,3)=-root3s(3,1)= root3;s(3,2)=-root3;s(3,3)= root3s(4,1)= root3;s(4,2)=-root3;s(4,3)=-root3s(5,1)=-root3;s(5,2)= root3;s(5,3)= root3s(6,1)=-root3;s(6,2)=-root3;s(6,3)= root3s(7,1)=-root3;s(7,2)= root3;s(7,3)=-root3s(8,1)=-root3;s(8,2)=-root3;s(8,3)=-root3wt = 1.0case(14)b=0.795822426 ; c=0.758786911wt(1:6)=0.886426593 ; wt(7:) = 0.335180055s(1,1)=-b ; s(2,1)=b ; s(3,2)=-b ; s(4,2)=bs(5,3)=-b ; s(6,3)=bs(7:,:) = cs(7,1)=-c ; s(7,2)=-c ; s(7,3)=-c ; s(8,2)=-c ; s(8,3)=-cs(9,1)=-c ; s(9,3)=-c ; s(10,3)=-c; s(11,1)=-cs(11,2)=-c ; s(12,2)=-c ; s(13,1)=-ccase(15)b=1. ; c=0.674199862wt(1)=1.564444444 ; wt(2:7)=0.355555556 ; wt(8:15)=0.537777778 s(2,1)=-b ; s(3,1)=b ; s(4,2)=-b ; s(5,2)=bs(6,3)=-b ; s(7,3)=b ; s(8:,:)=c ; s(8,1)=-cs(8,2)=-c ; s(8,3)=-c ; s(9,2)=-c ; s(9,3)=-cs(10,1)=-c ; s(10,3)=-c ; s(11,3)=-c ; s(12,1)=-cs(12,2)=-c ; s(13,2)=-c ; s(14,1)=-ccase(27)wt = (/5./9.*v,8./9.*v,5./9.*v/)s(1:7:3,1) = -r15; s(2:8:3,1) = .0s(3:9:3,1) = r15; s(1:3,3) = r15s(4:6,3) = .0 ; s(7:9,3) =-r15s(1:9,2) = -r15s(10:16:3,1) = -r15; s(11:17:3,1) = .0s(12:18:3,1) = r15; s(10:12,3) = r15s(13:15,3) = .0 ; s(16:18,3) =-r15s(10:18,2) = .0s(19:25:3,1) = -r15; s(20:26:3,1) = .0s(21:27:3,1) = r15; s(19:21,3) = r15s(22:24,3) = .0 ; s(25:27,3) =-r15s(19:27,2) = r15case defaultprint*,"wrong number of integrating points for a hexahedron"end select。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单元节点和积分点有什么区别
学过数值积分的应该知道,有限元中的积分点指高斯积分点,因为这些点的收敛性好,精度高。
1、节点
在单元内,采用形函数来表述单元内变量的分布规律。
而节点值是在节点处的对应物理量。
以简单矩形单元的温度为例:
四个节点i,j,m,n的温度分别为Ti,Tj,Tm,Tn.
则以单元内自然坐标(x,y),(-1,-1),(-1,1),(1,-1),(1,1)分别为四个节点,单元内温度分布为:
T={Si, Sj, Sm, Sn} {Ti, Tj, Tm, Tn}
Si=1/4(1-x)(1-y)
Sj=1/4(1+x)(1-y)
Sm=1/4(1+x)(1+y)
Sn=1/4(1-x)(1+y)
(单元的形函数我们可以从手册中查到)
从而我们知道了温度在单元内的分布。
2、积分节点
我们需要对温度在单元内的面积上进行积分时,因为节点的温度显然与x,y无关,我们只需要考虑对形函数积分。
采用Gauss_Legendre多项式计算积分时,我们只需要计算根据特定积分点的值(在自然坐标系下是固定的,可以查手册,这些点也叫高斯点、积分点)并加以权重就可以。
这就把复杂的积分问题变成了简单的代数问题。
因为形函数只有单元有关,所以积分点也只与单元形状有关。
3.应力一般采用多个积分点的相互插值或外延来计算节点应力。
这只是为了减少误差。
因为在积分点应力比节点具有更高阶的误差。
从理论上说,形函数已知后,用Maple或者Mathematic等软件进行符号积分的话,是可以精确计算出刚度矩阵和质量矩阵,但是这样做的话,对于工程实际应用来说并不合适(
原因:1,费时;2,Mindlin中厚板有剪力锁死问题,有时候需要采用缩聚积分),所以有些书上会把2节点梁单元的刚度阵直接写出来,但是再复杂点的单元,就使用数值积分(Newton-Cotes积分和高斯积分)
高斯积分的话,积分点不在节点上
牛顿-科斯的积分点就是节点,这样得到的质量矩阵是集中质量阵形式
个人理解:
1.节点作用构造形函数,节点的多少描述规则形状单元内的应力的近似分布情况,并获取节点上的位移值
2.积分点作用是构造规则形状单元与曲边(曲面)单元的转化的变换函数,积分点的选取多少和选取的位置直接关系到这种“映射”
的精确程度,刚度矩阵、边界条件的转化都用到了坐标变换的积分关系,一般取高斯积分点能使被积函数计算精度尽量高。
对于newton-cote积分点的选取,这种“映射”看起来,节点和积分点是同一个位置或说是同一点,而对于高斯积分点位置与节点是不同的。
故有如下结果:
1.由于高斯积分点的这种变换比较高,在方程求解结束,返回积分点上的应力解比较准确
2.至于Mindlin中厚板有剪力锁死问题,采用缩聚积分,也是应为这种坐标的变换关系(可见《有限单元法基本原理和数值方法》p345页10.4.11式可知),力的边界条件只有剪切,采用缩聚积分可以较大降低剪切力的影响,但是也可能引起刚度矩阵的奇异,所以对于中厚板的积分点选取不同一般的方案
1.ANSYS手册(Chapter 13)上列出各种单元的积分点位置。
2.王瑁成的《有限单元法》第五章,有解释为什么积分点应力更加精确。
3.因为积分点应力更精确,所以我们一般采用积分点的应力内插或外延确定节点应力。
特殊情况除外。
单元节点和积分点是不同的两个概念!
积分点是在进行函数积分的时候,为了增加精度,选取的积分点,也就是高斯积分
单元节点是你选取单元的时候就已经定下的点,
一定有单元节点,但不一定有积分点
在网格划分完了所有的节点就都给定了,就是你网格中的每个点,他是有限元模型中“真实存在”的点。
但是高斯点纯粹是因为高斯积分这种积分方式引入的。
数值分析告诉我们,数值积分有很多方法,比如辛普森积分,高斯积分等,比如说,如果你采用辛普森积分就不存在高斯点这个概念,只有当你采用高斯积分才会有高斯点,不过有限元大多都采用高斯积分。
看过高斯积分就知道高斯点是怎么一回事了。
有限元求解的结果是每个节点的位移,然后通过形函数插值得到单元任何一个点的位移,当然可以计算出高斯积分点的位移。
至于应力,一般是先求解出高斯点出的应力,然后通过平均化的技术平均到每个节点上,高斯点处的应力精度最高,节点最差。