声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2160|回复: 2

[编程技巧] Input argument 'x' is undefined 出错求助

 关闭 [复制链接]
发表于 2008-4-23 17:12 | 显示全部楼层 |阅读模式

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

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

x
《高等应用数学问题的MATLAB求解》书中第218页,第七章关于微分方程问题的计算机求解的例7-10,运算程序如下
function y=vdp_eq(t,x,flag,mu)
y=[x(2);-mu*(x(1)^2-1)*x(2)-x(1)];
x0=[-0.2;-0.7];t_final=20;
mu=1;[t1,y1]=ode45('vdp_eq',[0,t_final],x0,[],mu);
mu=2;[t2,y2]=ode45('vdp_eq',[0,t_final],x0,[],mu);
plot(t1,y1,t1,y1,':')
figure;plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2),':')
我按照书中输入运行后,报错
??? Input argument 'x' is undefined.
Error in ==> C:\MATLAB6p5\work\HouHouMatLab\myMulti.m
On line 2  ==> y=[x(2);-mu*(x(1)^2-1)*x(2)-x(1)];
>>
我自己的方程按照这个例子做了,也有这个问题,请教各位高手,如何修改这个错误呢??

[ 本帖最后由 eight 于 2008-4-23 18:32 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-23 17:52 | 显示全部楼层
程序见附件,代码是正确的,只是没有分成两个文件来写,图还是挺漂亮的
  1. function y=vdp_eq(t,x,flag,mu)
  2. y=[x(2);-mu*(x(1)^2-1)*x(2)-x(1)];
  3. end

复制代码

以上另存为m文件

  1. x0=[-0.2;-0.7];t_final=20;
  2. mu=1;[t1,y1]=ode45('vdp_eq',[0,t_final],x0,[],mu);
  3. mu=2;[t2,y2]=ode45('vdp_eq',[0,t_final],x0,[],mu);
  4. plot(t1,y1,t1,y1,':')
  5. figure;plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2),':')

复制代码

[ 本帖最后由 sigma665 于 2008-4-23 18:25 编辑 ]

vdp_eq.m

73 Bytes, 下载次数: 31

use_vdp_eq.m

203 Bytes, 下载次数: 26

评分

1

查看全部评分

发表于 2008-4-23 18:33 | 显示全部楼层
又是老掉牙的错误,请看置顶帖,锁了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 06:43 , Processed in 0.056836 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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