关于matlab的newmark程序!急!!!!!!!!!!!!!!! 运行后,有如下问题,请指教
问题:
function[x,v,a]=newmarkb(m,k,c,n,p,x0,v0,a0,dt,RecordLength)
m=[2,0;0,1]
k=[6,-2;-2,4]
c=zeros(2)
n=2
p=[0;10]
x0=[0;0]
v0=[0;0]
a0=[0;10]
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(:,i+1)+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
追问:p_(:,i+1)=p+m*(a0*x(:,i)+a2*v(:,i)+a3*a(:,i))+c*(a1*x(:,i)+a4*v(:,i)+a5*a(:,i))
那么这一句,p岂不是一个常量了吗,p只用到一次??
n=2
p=[0;10]
x0=[0;0]
v0=[0;0]
a0=[0;10]
你的这部分程序中的p就是常量啊,你的程序的具体意义我不是很清楚,只能从语法上去修改
大哥,请问如果p是如下的平p(t)=sin2pit 该如何呢。
如果P是常量,根据上面的算例,算出的响应和课本上的的答案不一样呢?
for i=1:RecordLength-1
p(:,i+1)=p(:,i)+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
我试试啊。很纠结
答案:function[x,v,a]=newmarkb
%既然你的输入参数在函数体内都有,所以输入参数列表可以取消
m=[2,0;0,1]
k=[6,-2;-2,4]
c=zeros(2)
n=2
p=[0;10]
x0=[0;0]
v0=[0;0]
a0=[0;10]
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
上一个:麻烦帮我解释下matlab数字水印程序
下一个:哪位大侠帮我在CSDN里面下Lee、Frost、MAP滤波的MAtlab程序,不胜感激!QQ380403647