早教吧作业答案频道 -->其他-->
matlab求解泛函微分方程数值解.我想用matlab求解一个泛函微分方程的数值解,编了个程序总是运行不出来,lags=[1];sol=dde23('ddefun',lags,'history',[0,100]);plot(sol.x,sol.y);title('ddefun');xlabel('t');ylabel('y');l
题目详情
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{:});
我想用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!
function S=history(t)
S=ones(3,1);
改为 S=ones(4,1);
OVER!
PS.多翻翻help!
看了matlab求解泛函微分方程数...的网友还看了以下:
[不等式证明]已知a>1,证明0<1/a1,证明0<1/a1两边同除a?3.0<1/a能在缩小点范 2020-06-06 …
已知椭圆x^2/a^2+y^2/b^2=1(a>b>0)的离心率为根号3/2,且过A(0,1)A为 2020-06-30 …
已知函数f(x)=x+a/x(x>0,a≠0),(1)a0,试判断函数的单调已知函数f(x)=x+ 2020-07-09 …
偏移量的计算题若有数组a[0..3,0..2,1..4],设编译时为a分配的存储空间首地址为bas 2020-07-10 …
.若有数组“inta[10]={1,2,3,4,5,6,7,8,9};”,则数值最大和最小元素的下 2020-07-29 …
二次型的化标准型的问题!设XTAX=x1^2+4*x2^2+x3^2+2aX1X2+2bX1X3+ 2020-07-31 …
一个n阶矩阵A,主对角线上都是1,其他都是a,怎么化简成(n-1)a+1乘以一个一行1,一列0,1 2020-08-02 …
一道证明题运用基本原理证明:如果a>0,1/a>0已知:A1.a+b=b+aA2.(a+b)+c=a 2020-10-31 …
设0<b<1+a,若关于x的不等式(x-b)2>(ax)2的解集中的整数恰有3个,则a的取值范围是( 2020-11-10 …
已知命题p:“任意x∈1,2,1/2x²-㏑x-a≥0”与命题q:“存在x∈R,x²+2ax-8-6 2021-01-01 …