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{:});
答案
改动:
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的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
- 有一个两位数,它的两个数字之和为11,把这个两位数的个位数字与十位数字对调,所得的新数比原数大63,则原两位数为________.(一元一次方程解)
- 谁能告诉我一下这道英语题怎么写!对的话有追分的,!谢谢拉!急啊!
- 1910-150*1=(150+70)*X 解方程!
- 舞蹈的同学排队跳舞,每行人数一样多,笑笑的位置从做数是第2个,从右数是地第5个,从前数是第3个,从后数是第3个.你能算出这个舞蹈队有多少人吗?
- 为什么陶瓷的导热系数比玻璃大?
- 妈妈将10000元存入银行,定期三年,到期后妈妈从银行取回本金和利息共10777.6元,三年定期存款的年利率是
- 高中化学怎样学?
- 大气层空气越到高空越稀薄,太阳光穿过大气层时要发生折射,因此,早晨我们看到初升的太阳是在它实际位置的 (填“上方”或“下方”).傍晚时,我们看到的西下落日是在他实际位置的 .
- no matter how long I will get along with you in my life ,just cherish each other now ..
- sin2x/(1+(cosx)^4)求不定积分
热门考点