声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1829|回复: 3

[综合讨论] 求助!wilson-θ法的MATLAB方法实现

[复制链接]
发表于 2006-12-12 11:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
希望能帮忙,我的毕业设计里用到这个方法,可是到f(t+θ*dt)这项不知道怎么迭代,还希望高手给帮忙指点,
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-12-14 19:38 | 显示全部楼层
自己顶一下
我参考了基本书,看到书里面对于f(t+θ*dt)得问题,都是把f(t)时刻的值代入了,而f(t+dt)-f(t)这一项好像忽略了,不知道怎么回事?
请大家帮忙
发表于 2006-12-14 20:22 | 显示全部楼层
function [ua,ua1,ua2]=wilson(m,k,c,pt,u,u1,u2,n,theta,dertat)
% by swell2005
%---------------
a0=6/((theta*dertat)^2);
a1=3/(theta*dertat);
a2=2*a1;
a3=theta*dertat/2;
a4=a0/theta;
a5=-a2/theta;
a6=1-3/theta;
a7=dertat/2;
a8=dertat^2/6;
k=k+a0*m+a1*c;
[r,s]=ldl(k);
%----------------
for i=0:n,
  pta=pt+m*(a0*u+a2*u1+2*u2)+c*(a1*u+2*u1+a3*u2);
   %---pta=pta+theta*(pta-pt0)+m*(a0*u+a2*u1+2*u2)+c*(a1*u0+2*u1+a3*u2);
  uaa=r\pta;
  uaa=s\uaa;
  uaa=r'\uaa;
  ua2(:,i+1)=a4*(uaa-u)+a5*u1+a6*u2;
  ua1(:,i+1)=u1+a7*(ua2(:,i+1)+u2);
  ua(:,i+1)=u+dertat*u1+a8*(ua2(:,i+1)+2*u2);
  u=ua(:,i+1);
  u1=ua1(:,i+1);
  u2=ua2(:,i+1);
end

仅供参考(我没有运行过,请原谅),希望楼主自己好好研究,这样才能提高啊。
 楼主| 发表于 2006-12-18 21:08 | 显示全部楼层
先感谢回帖的高手,我就是不太懂pta=pta+theta*(pta-pt0)+m*(a0*u+a2*u1+2*u2)+c*(a1*u0+2*u1+a3*u2);
中的为什么就能直接可以写成 pta=pt+m*(a0*u+a2*u1+2*u2)+c*(a1*u+2*u1+a3*u2); 那theta*(pta-pt0)这一项怎么为零的,
因为我查过相关的书籍,可能数学上还是不好,对于这项为零不懂,还请在赐教,感激不尽!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 06:03 , Processed in 0.093591 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表