24小时热门版块排行榜    

查看: 737  |  回复: 4

maggie0211

新虫 (小有名气)

[求助] matlab中一点小问题

程序如下:
第一个:
function dx=ax3(t,x)
dx=[x(2)
    -48.6*x(1)-1.26*x(2)+48.6*x(3)+21.6*sin(x(2))
    10*x(4)
    1.95*x(1)-1.95*x(3)-0.333*sin(x(1))
    x(6)+5.1734*(x(1)-x(5))-5.0069*(x(2)-x(6))
    -48.6*x(5)-1.26*x(6)+48.6*x(7)+21.6*sin(x(6))-4.3407*(x(1)-x(5))
    -4.1015*(x(2)-x(6))
    10*x(8)
    1.95*x(5)-1.95*x(7)-0.333*sin(x(5))+1.0759*(x(1)-x(5))+1.0166*(x(2)-x(6))]
第二个:
tspan=[0 10];
x0=[1 2 1 0 1 2 0 0.5]';
[t,x]=ode15s(@ax3,tspan,x0);
e1=x(:,1)-x(:,5);
e2=x(:,2)-x(:,6);
e3=x(:,3)-x(:,7);
e4=x(:,4)-x(:,8);
plot(t,x(:,1),'r*',t,x(:,5),'o')
xlabel('t')
legend('状态量x_{1}','状态量x_{1}的估计')
figure
plot(t,e1)
xlabel('t');
ylabel('状态量x_{1}与其估计量的误差e_{1}')
figure
plot(t,x(:,2),'r*',t,x(:,6),'o')
xlabel('t')
legend('状态量x_{2}','状态量x_{2}的估计')
figure
plot(t,e2)
xlabel('t')
ylabel('状态量x_{2}与其估计量的误差e_{2}')
figure
plot(t,x(:,3),'r*',t,x(:,7),'o')
xlabel('t')
legend('状态量x_{3}','状态量x_{3}的估计')
figure
plot(t,e3)
xlabel('t');
ylabel('状态量x_{3}与其估计量的误差e_{3}')
figure
plot(t,x(:,4),'r*',t,x(:,8),'o')
xlabel('t')
legend('状态量x_{4}','状态量x_{4}的估计')
figure
plot(t,e4)
xlabel('t');
ylabel('状态量x_{4}与其估计量的误差e_{4}')
执行第二个程序后,出现如下错误:
??? Error using ==> funfun\private\odearguments
Solving AX3 requires an initial condition vector of length 4.

Error in ==> ode15s at 228
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
应该怎么改?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-07-04 22:24:03
初始条件的个数不一致。
有几个待求变量,就要给几个初始条件。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2013-07-03 11:34:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maggie0211

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2013-07-03 11:34:34
初始条件的个数不一致。
有几个待求变量,就要给几个初始条件。

我发现了,已经改了dx,改成了八个,但是还是同样错误,是不是matlab某个设置不对啊?
3楼2013-07-03 12:16:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Nonebull

木虫 (正式写手)

【答案】应助回帖


臭水沟: 金币+1, 谢谢交流~ 2013-07-08 21:04:47
dx的写法在matlab看来是有九个ode方程,可能你中间有个方程在哪里断行了,最好连起来写在一行
4楼2013-07-08 03:41:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Autoyang

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2013-07-03 11:34:34
初始条件的个数不一致。
有几个待求变量,就要给几个初始条件。

function xprim= xprim1(t,x)

global a b c d e f q w r v s g

xprim =[(e*s+a)*x(1)+(e*g+b)*x(2)+q*0.3*sin(t)+w*0.1*cos(2*t);(f*s+c)*x(1)+(f*g+d)*x(2)+r*0.3*sin(t)+v*0.1*cos(2*t)];


clear;clc;

global a b c d e f q w r v s g

a = 0; b = 1; c = 4; d = 0;
e = 0; f = 1;
q = 1; w = 0; r = 0; v = 1;
s = 1; g = 3;

[t,x] = ode45('xprim1',[0 9],[0.4;0.2]);

plot(t,x)



出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

出错 event_trigger_ftb (line 10)
[t,x] = ode45('xprim1',[0 9],[0.4;0.2]);

您好,请问这个是怎么回事呀?
5楼2018-09-13 17:24:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 maggie0211 的主题更新
信息提示
请填处理意见