用matlab求解微分方程组

t的范围为[0,pi/6]x(0)=0, y(0)=x(pi/6) (y的初值等于t=pi/6时x的值)(如果采用龙格库塔法ode45,初值条件是否可以是非确定值,如:x(0)=0, y(0)=x(pi/6) ;如果堪称边值(BVP)问题,该如何编写程序? )请问各位大神,如何求解,并画出图形

首先 建立M文件:
function dx=myfun(t,x)
dx=zeros(2,1);
dx(1)=x(1)*cos(t)+5*x(2)*cos(t+pi/6);
dx(2)=5*x(1)+5*x(2)*cos(t+pi/6);

主窗口: (这里y(0)=x(pi/6)我取的是1,,初值必须是已知的,,所以你可以大致算下它)

[t,x]=ode45('myfun',[0 pi/6],[0 1]);
Y=0:0.01:pi/6;
plot(x(:,1),x(:,2))

ode解微分求值错,,要好好看的,呵呵追问

y(0)=x(pi/6)要如何处理,因为x的方程无法确定,也就无法得出x(pi/6)的确定值,你说的大致算下,是怎么算,才能保证结果y(0)=x(pi/6)??

追答

在matlab中如果初值选取不能确定,,我知道的可以试用几个初值(主观判断),图像的趋势基本没变,,,,你这题初值好像可以求出来的,,t=0,x(0)=0,你自己看吧,,明明只可以解出来的,,就算解不错来,,随便改动y的初值,,图像应该没变,。。,,不过初值问题我也说不好,,所以,,要靠亲自己认真判断的,呵呵

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-13
不能是非确定的,否则龙哥库塔法解不了追问

那么当作边值问题可以吗?

相似回答