91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

可靠性算法,改進一次二階矩法的Matlab源代碼,結合Rackwitz-Fiessler方法,能夠考慮任意分布的隨機變量,里面包含部分測試例子,可直接在Matlab軟件中調用執行,文件中包含詳細的注釋。

資源截圖

代碼片段和文件信息

function?AFOSMJC(NE)
%AFOSM法+JC法(Rackwitz-Fiessler方法)
%適用范圍:隨機變量為任意分布,變量間獨立
%特點:保證等價前后失效概率具有較高的近似精度,特征點取MPP點
%缺點:設計點迭代可能不收斂,可能陷入局部最優,可使用遺傳算法計算設計點
%輸入參數:NE?-?極限狀態函數索引,整數
????global?Prob
????tic
????if?nargin<1?NE?=?0;?end?????????????????????????????????%如果未定義方程索引,默認使用索引0
????%1.定義符號變量
????syms?x1??x2??x3??x4??x5??x6?x7??x8??x9??xa??xb??xc??xd??xe??xf??xg;
????X=[?x1??x2??x3??x4??x5??x6?x7??x8??x9??xa??xb??xc??xd??xe??xf??xg?];
????XX=[‘x1‘;??‘x2‘;??‘x3‘??;‘x4‘?;?‘x5‘;??‘x6‘?;‘x7‘;??‘x8‘;??‘x9‘;??‘xa‘;??‘xb‘;??‘xc‘;??‘xd‘;??‘xe‘;??‘xf‘;?‘xg‘];

????%2.獲得方程相關公式、變量數目、變量分布、變量參數
????Prob?=?FunDist(?NE?);

????%3.獲得相應參數
????gFun=Prob.Fung;?????????????????????????????????????????%用符號變量表示極限狀態函數
????for?i=1:Prob.Nx???
????????[muX(i:)sigmaX(i:)]=RandomVariableStat(Probi);
????end;?
????
????%4.推導偏導函數,符號變量賦值
????for?i=1:Prob.Nx
????????dgFun(i:)=diff(gFunX(i));?????????????????????????%求極限狀態函數偏導數表達式
???? eval([XX(i:)?‘=muX(i:);‘]);???????????????????????%為符號變量賦值?-?變量均值
????end;
????
????%5.計算功能函數值及導數值
????gValue=eval(gFun);??????????????????????????????????????%求解極限狀態函數在均值點處函數值
????for?i=1:Prob.Nx????????????????????????????????????????
????????dgValue(i:)=eval(subs(dgFun(i)));??????????????????%求解極限狀態函數在均值點處導數值
????end;

????%6.迭代求解MPP點
????x=muX;
????x0=repmat(epslength(muX)1);
????IteratingStep=0;
????while?norm(x-x0)/norm(x0)?>?1e-6
????????IteratingStep=IteratingStep+1;
????????x0=x;
????????%6.1符號變量賦值
????????for?i=1:Prob.Nx
????????????eval([XX(i:)?‘=x(i);‘]);???????????????????????%為符號變量賦值?-?xi迭代值
????????end;
????????%6.2計算功能函數值及導數值
????????gValue=eval(gFun);
????????dgValue=eval(subs(dgFun));??????????????????????????%求在xi點的偏導數值dg/dxi|xi
????????%%%%%%%%%%%%%%%%%%%%
????????%6.3?JC法對非正態分布變量進行轉換處理
????????[muXsigmaX]=JCMethod(Prob?x);
????????%%%%%%%%%%%%%%%%%%%%
????????%6.4計算加權標準差
????????gs=dgValue.*sigmaX;
????????%如果gs值為零,需要偏移當前點位置,重新計算
????????if(norm(gs))?==?0
????????????x=x+0.1;
????????????continue;
????????end
????????%6.5計算靈敏度系數
????????alphaX=-gs/norm(gs);
????????%6.6計算可靠度指標
????????beta=(gValue+dgValue.‘*(muX-x))/norm(gs);
????????%6.7計算新的x向量值
????????x=muX+sigmaX.*alphaX*beta;
????end
????
????%7.求解函數值及失效概率
????MPP=eval(subs(x));???????????????????????????????????????%求解基本變量x的值
????Pf=normcdf(-beta);???????????????????????????????????????%失效概率
????
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????fprintf(‘××××××AFOSMJC?失效模式可靠性分析結果××××××\n‘);?
????fprintf(‘設計點迭代步數:????%d\n‘IteratingStep);?
????fprintf(‘設計點坐標:‘);
????for?i=1:Prob.Nx
????????fprintf(‘????????%10.8f‘MPP(i));
????end????
????fprintf(‘\n‘);?
????fprintf(‘設計點g值:?????????g(x)=%10.10f\n‘gValue);
????fprintf(‘可靠度指標:????????β=%10.10f\n‘beta);
????fprintf(‘失效概率:??????????Pf=%10.10f\n‘Pf);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????toc
????
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

評論

共有 條評論