当前位置: > matlab求解泛函微分方程数值解....
题目
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{:});

提问时间:2021-01-02

答案
改动:
function S=history(t)
S=ones(3,1);
改为 S=ones(4,1);
OVER!
PS.多翻翻help!
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
版权所有 CopyRight © 2012-2019 超级试练试题库 All Rights Reserved.