24小时热门版块排行榜    

查看: 685  |  回复: 6

wyjjf

新虫 (正式写手)

[交流] 空向量是因为我的自己的式子巧合出现的吗? 已有1人参与

程序老出错,据说出现空向量

怎么避免出现空向量?、
谢谢
【m.file】ODE45_fun:

function dx=ODE45_fun(t,x)
a1=1;a2=1;e1=9;e2=7;f1=56;f2=98;g1=76;g2=665;
a=a1+a2;
e=e1+e2;
f=f1+f2;
g=g1+g2;
dx(1)=x(3)+x(2)-x(4)*x(2)+2*x(5)*x(2)+x(2)*x(2)+x(5)+e+f+g;
dx(2)=x(1)+x(3)-x(4)*x(2)+x(2)*x(2)+x(5)*x(5)+x(5)*x(2)+e*f+g;
dx(3)=x(2)+x(1)-x(5)*x(1)+x(4)*x(3)-x(3)-x(4)-e*g-f;
x(6)=x(4)*x(5)+x(2)*x(3)+e*f+e*g;        % 就是x(6)  而非dx(6)
dx(4)=x(5)*a-x(3)*x(1)-x(3)-e*f*g*x(6)
dx(5)=x(4)*a-x(2)*x(1)+e*f*x(1)+x(2)*x(2)*x(5)+x(2)*x(5)*x(5)+e*f+f*g
dx=[dx(1);dx(2);dx(3);dx(4);dx(5);dx(6)];
【m.file】DE45_main:

tspan=[0,10];
x0=[0;0.1;2;0;0.1;2];
[t,x]=ode45('ODE45_fun',tspan,x0);
data=[t,x];
save ODE45_data.txt data -ascii
subplot(2,3,1),plot(t,x(1))
subplot(2,3,2),plot(t,x(2))
subplot(2,3,3),plot(t,x(3))
subplot(2,3,4),plot(t,x(4))
subplot(2,3,5),plot(t,x(5))
subplot(2,3,6),plot(t,x(6))

>> ODE45_main

dx =

  1.0e+010 *

    0.0000    0.0000   -0.0000   -2.6146


dx =

  1.0e+010 *

    0.0000    0.0000   -0.0000   -2.6146    0.0000

??? Attempted to access dx(6); index out of bounds because numel(dx)=5.

Error in ==> ODE45_fun at 14
dx=[dx(1);dx(2);dx(3);dx(4);dx(5);dx(6)];
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 ==> ODE45_main at 3
[t,x]=ode45('ODE45_fun',tspan,x0);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
你这里面没出现dx6么

你咋到处挖坑啊
2楼2015-03-16 11:22:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyjjf

新虫 (正式写手)

引用回帖:
2楼: Originally posted by 信彼南山 at 2015-03-16 11:22:31
你这里面没出现dx6么

你咋到处挖坑啊

本来建立的模型就没有dx6  只是x6
3楼2015-03-16 13:33:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyjjf

新虫 (正式写手)

引用回帖:
2楼: Originally posted by 信彼南山 at 2015-03-16 11:22:31
你这里面没出现dx6么

你咋到处挖坑啊

http://muchong.com/bbs/viewthread.php?tid=8647830&pid=10#pid10
已经看到了,谢谢耐心讲解
MATLAB程序中的式子已经按照图片修改过了
前期是想程序的可行性,还是想的简单了     
运算后还是那些错误结果
dx=[dx(1);dx(2);dx(3);dx(4);dx(5);dx(6)]
确实是习惯写成dx(6)了,当时没注意
但确实有六个变量啊
写成:dx=[dx(1);dx(2);dx(3);dx(4);dx(5)]
那么x(6)怎么办呢?
彻底不会写了
4楼2015-03-16 14:00:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
在另外那个帖子中提过了
你的x(6)实际是公式里面的Y,而Y只出现在两个方程里面,可以吧Y带入另一个式子么。
这样就变成5个方程5个变量了。

用Euler法帮你简单算了一下,发散速度太快,只能算到7-8步的样子就NAN了
5楼2015-03-16 14:45:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyjjf

新虫 (正式写手)

引用回帖:
5楼: Originally posted by 信彼南山 at 2015-03-16 14:45:14
在另外那个帖子中提过了
你的x(6)实际是公式里面的Y,而Y只出现在两个方程里面,可以吧Y带入另一个式子么。
这样就变成5个方程5个变量了。

用Euler法帮你简单算了一下,发散速度太快,只能算到7-8步的样子就NA ...

好的谢谢了
6楼2015-03-16 16:07:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyjjf

新虫 (正式写手)

引用回帖:
5楼: Originally posted by 信彼南山 at 2015-03-16 14:45:14
在另外那个帖子中提过了
你的x(6)实际是公式里面的Y,而Y只出现在两个方程里面,可以吧Y带入另一个式子么。
这样就变成5个方程5个变量了。

用Euler法帮你简单算了一下,发散速度太快,只能算到7-8步的样子就NA ...

编辑MATLAB程序:
x y z b c 分别对应x(1——5), Y暂时没求
ODE45_fun【m文件】:
function dx=ODE45_fun(t,x)
dx = zeros(5,1); % a column vector
a1=1;a2=1;e1=9;e2=7;f1=56;f2=98;g1=76;g2=665;
a=a1+a2;
e=e1+e2;
f=f1+f2;
g=g1+g2;
dx(1)=x(3)-x(2)+x(4)*x(2)-2*x(5)*x(2)-x(2)*x(2)-x(5)-e-f-g;
dx(2)=x(1)-x(3)+x(4)*x(2)-x(2)*x(2)-x(5)*x(5)-x(5)*x(2)-e*f-g;
dx(3)=x(2)-x(1)+x(5)*x(1)-x(4)*x(3)+x(3)+x(4)+e*g+f;
dx(4)=x(5)*a+x(3)*x(1)+x(3)+e*f*g*(x(4)*x(5)+x(2)*x(3)+e*f+e*g)
dx(5)=x(4)*a+x(2)*x(1)-e*f*x(1)-x(2)*x(2)*x(5)-x(2)*x(5)*x(5)-e*f-f*g

dx=[dx(1);dx(2);dx(3);dx(4);dx(5)]; % dx=[dx(1);dx(2);dx(3);dx(4);dx(5);dx(6)];

ODE45_main【m文件】:
tspan=[0,1e-5];
x0=[0;0.1;2;0;0.1];
[t,x]=ode45('ODE45_fun',tspan,x0);
data=[t,x];
save ODE45_data.txt data -ascii
subplot(2,3,1),plot(t,x(1))
subplot(2,3,2),plot(t,x(2))
subplot(2,3,3),plot(t,x(3))
subplot(2,3,4),plot(t,x(4))
subplot(2,3,5),plot(t,x(5))
%subplot(2,3,6),plot(t,x(6))

以上的程序没问题
【问】
(1)由于Y=x(4)*x(5)+x(2)*x(3)+e*f+e*g
Y=x(4)*x(5)+x(2)*x(3)+e*f+e*g,该怎么添加到上面的程序里?
(2)tspan=[0,1e-5];
表示在MATLAB里算了多少次?或需要多长时间呢?
谢谢
空向量是因为我的自己的式子巧合出现的吗?
六元方程组怎么用MATLAB编辑程序?.jpg
7楼2015-03-17 09:26:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wyjjf 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见