声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1061|回复: 3

[编程技巧] 请教用ODE45求解24维2阶方程出错,麻烦看下

[复制链接]
发表于 2008-6-4 11:16 | 显示全部楼层 |阅读模式

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

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

x
function impact_ca
q0 = zeros(48,1);
% 读入初始状态向量
[t,y] = ode45(@f,[0,1],q0);
% 求解冲击响应
if t<=0.006;
    A=c;
else
    A=zeros(24,1);
end
[v,d]=eig(k,M)
w=sqrt(v)
C=2*1e-2*M*w
function dy = f(t,x)
dy = zeros(48,1);
dy(1:24)=x(25:48);
dy(25:48)=-inv(M)*M*A'-inv(M)*k*x(1:24)'-inv(M)*C*x(25:48)';
end
end
这个是我编织的M函数但是运行老是处错麻烦帮忙看下是什么问题?
??? The function, script, or class impact_cal
cannot be indexed using {} or . indexing.
Error in ==> funfun\private\odearguments at 110
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, ...
Error in ==> impact_cal at 4
[t,y] = ode45(@f,[0,1],q0);

线性数据.mat

1.04 KB, 下载次数: 8

刚度质量矩阵

impact_cal.m

333 Bytes, 下载次数: 8

M函数

回复
分享到:

使用道具 举报

发表于 2008-6-4 12:19 | 显示全部楼层
原帖由 chriswonder 于 2008-6-4 11:16 发表
function impact_ca
q0 = zeros(48,1);
% 读入初始状态向量
[t,y] = ode45(@f,[0,1],q0);
% 求解冲击响应
if t funfun\private\odearguments at 110
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1}  ...


LZ的代码写的有点儿乱,自己再看看关于函数定义的基础知识;另外能否把背景知识介绍一下
 楼主| 发表于 2008-6-4 13:53 | 显示全部楼层
工程背景是
这个方程组,M是24x24的举证,M和K,C,c都已经算出来了就求震动的响应X
 楼主| 发表于 2008-6-4 13:55 | 显示全部楼层
??? The function, script, or class impact_cal
cannot be indexed using {} or . indexing.这个问题主要是出在什么地方?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 02:40 , Processed in 0.080481 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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