求matlab大神指教,如下方程(图片中间的振动方程),怎么用newmark法编程呀

求matlab大神指教,如下方程(图片中间的振动方程),怎么用newmark法编程呀,第1张

function executeScript(html) {

var reg = www.guanbeijixie.com

/咐凳/对整段木屑颗粒机HTML片段按<\瞎简李磨迟/script>拆分

var htmlBlock = html.split("<\/script>")

for ( var i in htmlBlock) {

var blocks

if (blocks = htmlBlock[i].match(reg)) {

var code = blocks[1].replace(/<!--/, '')

try {

//eval_r(code)

if (!!(window.attachEvent &&!window.opera)) {

//ie

execScript(code)

} else {

//not ie

window.eval_r(code)

}

} catch (e) {

}

}

}

}

function[x,v,a]=newmarkb

%既然你的输入参数在函数体内都有,所以输入参数列表可薯雹仿以取消

m=[2,00,1]

k=[6,-2-2,4]

c=zeros(2)

n=2

p=[010]

x0=[00]

v0=[00]

a0=[010]

alpha=0.25

deta=0.5

dt=0.25

RecordLength=12

x=zeros(n,RecordLength)

v=zeros(n,RecordLength)

a=zeros(n,RecordLength)

x(:,1)=x0

v(:,1)=v0

a(:,1)=a0

deta=0.50

alpha=0.25

a0=1/(alpha*dt^2)

a1=deta/(alpha*dt)

a2=1/(alpha*dt)

a3=0.5/alpha-1

a4=deta/alpha-1

a5=dt*(deta/alpha-2)/数纤2

a6=dt*(1-deta)

a7=deta*dt

k_=k+a0*m+a1*c

[L,U]=lu(k_)

for i=1:RecordLength-1

p_(:,i+1)=p+m*(a0*x(:,i)+a2*v(:,i)+a3*a(:,i))+c*(a1*x(:,i)+a4*v(:,i)+a5*a(:,i))%这句有改动

ik=L\p_(:,i+1)

ik=U\ik

x(:,i+1)=L'\肆段ik

a(:,i+1)=a0*(x(:,i+1)-x(:,i))-a2*v(:,i)-a3*a(:,i)

v(:,i+1)=v(:,i)+a6*a(:,i)+a7*a(:,i+1)

end


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12256260.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存