matlab 泛函微分方程,【matlab求解泛函微分方程数值解.我想用matlab求解一个泛函微分方程的数值解,编了个程序总是运行不出来,lags=[1];sol=dde23('ddefun',la...

matlab求解泛函微分方程数值解.

我想用matlab求解一个泛函微分方程的数值解,编了个程序总是运行不出来,

lags=[1];

sol=dde23('ddefun',lags,'history',[0,100]);

plot(sol.x,sol.y);

title('ddefun');xlabel('t');ylabel('y');

legend('y_1','y_2','y_3','y_4',2);

tx=[4.3,4.7];y=deval(sol,tx);hold on;plot(tx,y,'x');

function dydt=ddefun(t,y,Z)

ylag1=Z(:,1);

dydt=[(-0.5)*y(1)-2*y(2)+ylag1(3)

2*y(1)-0.5*y(2)+ylag1(4)

(-0.5)*y(3)-0.5*y(4)+ylag1(1)

0.5*y(3)-0.5*y(4)+ylag1(2)];

function S=history(t)

S=ones(3,1);

原方程是这样的

dy1/dt=-0.5y1-2y2+y3(t-1)

dy2/dt=2y1-0.5y2+y4(t-1)

dy3/dt=-0.5y3-0.5y4+y1(t-1)

dy4/dt=0.5y3-0.5y4+y2(t-1)

还是不对,运行后出现了这样的提示:

In an assignment A(:,matrix) = B,the number of rows in A and B

must be the same.

Error in ==> C:\MATLAB6.5\toolbox\matlab\funfun\dde23.m (lagvals)

On line 656 ==> Z(:,j) = temp(:);

Error in ==> C:\MATLAB6.5\toolbox\matlab\funfun\dde23.m

On line 270 ==> Z = lagvals(t,lags,history,t,y,[],varargin{:});

作业帮用户2016-12-05举报

6c0a0adef10d1043fa4f41a7897345ed.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值