想用matlab的ode45求解一个矩阵表述的微分方程: dx/dt=x.*A*y+x dy/dt=y.*B*x?

想用matlab的ode45求解一个矩阵表述的微分方程:dx/dt=x.*A*y+xdy/dt=y.*B*x其中x与y均为5行1列的随机向量,A,B均为5X5的矩阵。这时候初值该怎么写?如果只有一个向量x参与运算,但是假如引入另一个变量,格式怎么写呢?

这个方程要解出来还要bai初始条件吧
不妨设(x(0),y(0))=(A,B);
还有用duode45只能得到数值解,不能给出解析式表达
那么先建立一zhi个函数文件
test_fun.m
function dx=tsst_fun(x,t)
dx(1)= c-b*x(1)-w*x(1)*x(2);
dx(2)=w*x(1)*x(2)-(b+m)*x(2);
那么调用ode45
x0=(0,0);
t0=0:0.01:10;
;%根据你dao所想要回的求得值设定t0,间隔是任意的,与求解所用的步长无关,
[x,t]=ode45(@test_fun,t0,x0);
得到了答
温馨提示:内容为网友见解,仅供参考
无其他回答

matlab想用ode45求解一个二阶常微分方程
第一步:自定义微分方程函数odefun,其内容为:```matlab function dydx = bvpfcn(x,y)dydx = [y(2) - y(1)];end ```第二步:自定义边界条件函数bcfun,其内容为:```matlab function res = bcfcn(ya, yb)res = [ya(1), yb(1) - 2];end ```第三步:创建初始估计值函数guess...

急!!用matlab ode45求微分方程组 dx\/dt+x+y=0 dy\/dt+x-y=0 x(0)=0...
问数学老师啊

急求matlab求解常微分方程组数值 dx\/dt=ax(1-x\/m)+bxy dy\/dt=cy+dx...
function dzdt=fun(t,z)a=1;b=-2;c=3;d=-4;m=5;%这些参数我随意设的,根据需要自己修改 dzdt=[a*z(1)*(1-z(1)\/m)+b*z(1)*z(2);c*z(2)+d*z(1)*z(2)];设定积分区间 TSpan=[0,10]';%自己确定 设定初值 Z0 = [1,-1]';%自定 用ode45求解 [T,Z]=ode45(@fun...

老师您好,我想请问一下这个方程该怎么用matlab的ode45方程解?
1、自定义微分方程组函数,func(t,x)2、确定x0的初值,x0=[0,0,0,0,0];3、使用ode45函数求解【t,x】值。[t,x]=ode45(@(t,x)func(t,x),[0,1.0],x0);4、使用plot函数绘制t—x(t),t—dx\/dt,t—y(t),t—dy\/dt,t—v(t)数值解的图形 编程运行可以得到如下结果(Mc=1...

怎样用matlab中用ode45求解带有分段参数的微分方程组
分段函数的一个简单方法就是分了几段就写几个函数:定义一个主调函数、两个子函数 最后一个主调程序调用 function dx=fun(t,x)dx=zeros(2,1);f=;dc(t)=diff('f','t');%f就是你的c(t)dx(1)=x(2)*dc(t);dx(2)=x(1)+6*t^2;%0<=t<=2 ode45(@fun,[0 2],[初值])...

matlab ode45 求解常微分方程组
这个方程要解出来还要初始条件吧 不妨设(x(0),y(0))=(A,B);还有用ode45只能得到数值解,不能给出解析式表达 那么先建立一个函数文件 test_fun.m function dx=tsst_fun(x,t)dx(1)= c-b*x(1)-w*x(1)*x(2);dx(2)=w*x(1)*x(2)-(b+m)*x(2);那么调用ode45 x0=(0,0);...

Matlab使用ode45解微分方程组的基本问题,下面有一个简单的微分方程组求...
建立myfun.m文件,把以下代码复制进去 function dx=myfun(t,x)dx=zeros(2,1);dx(1)=4*x(1)+x(2).^2;dx(2)=8*x(1)+2*x(2).^2+5*x(2);运行以下代码 t=[0 0.1];x0=[1 1];[tt,xx]=ode45('myfun',t,x0);plot(tt,xx(:,1),'-',tt,xx(:,2),'-.')%画出两者...

matlab想用ode45求解一个二阶常微分方程
1、首先我们应该理清ode函数应用条件,由于二阶常微分方程的解有两个变量(y和y'),一般来说,给出的初始条件为 y(0)=某值和y'(0)=某值,这类问题是适合用ode函数求解。2、对于题主提出另一种初始条件(同一变量的),即y(0)=某值,y(10)=某值,则不能用ode函数,而...

用matlab的ode45求解如下微分方程的程序
你把lgkt中的x改成x(1)试试看,我试过应该没问题的 function xx=lgkt(t,x)xx=3*x(1)+cos(t)+sin(2*t);[t,x]=ode45(@lgkt,[0 10],[2]);plot(t,x,'-o');

请问如何实现matlab解一阶微分方程组(用其自身命令如ode45等怎么写能运 ...
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存 function dxdt=zhidao_rk4_5(t,x)global a b c d r x1=x(1);x2=x(2);x3=x(3);x4=x(4);dxdt=[a*(x2-x1)+x4;d*x1-x1*x3+c*x2;x1*x2-b*x3;x2*x3+r*x4;];在Matlab下面输入:global a b c ...

相似回答