单摆微分方程求解:x''+(g/l)sin(x)=0,用Matlab求解,function dphi=Pendel_DGL(t,x)g= 9.81;l= 1;dphi_1=x(2);dphi_2=-g/l*sin(x(1));dphi= [dphi_1;dphi_2];[t,x]=ode45(Pendel_DGL,[0,4],[pi/2,0])我觉得思路没有错误呀
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 00:31:04
单摆微分方程求解:x''+(g/l)sin(x)=0,用Matlab求解,function dphi=Pendel_DGL(t,x)g= 9.81;l= 1;dphi_1=x(2);dphi_2=-g/l*sin(x(1));dphi= [dphi_1;dphi_2];[t,x]=ode45(Pendel_DGL,[0,4],[pi/2,0])我觉得思路没有错误呀
单摆微分方程求解:x''+(g/l)sin(x)=0,用Matlab求解,
function dphi=Pendel_DGL(t,x)
g= 9.81;
l= 1;
dphi_1=x(2);
dphi_2=-g/l*sin(x(1));
dphi= [dphi_1;dphi_2];
[t,x]=ode45(Pendel_DGL,[0,4],[pi/2,0])
我觉得思路没有错误呀
单摆微分方程求解:x''+(g/l)sin(x)=0,用Matlab求解,function dphi=Pendel_DGL(t,x)g= 9.81;l= 1;dphi_1=x(2);dphi_2=-g/l*sin(x(1));dphi= [dphi_1;dphi_2];[t,x]=ode45(Pendel_DGL,[0,4],[pi/2,0])我觉得思路没有错误呀
1.这段程序基本没有什么错误,只是在最后调用ode45求解时候,格式有点错误,修改一下就能运行了:[t,x]=ode45(@Pendel_DGL,[0,4],[pi/2,0])
2. 在编程时候,在help里面可以找到很多例子,一般来说照着例子来编程,基本不会发生错误,如下:
子程序:
function dx=myfun(t,x)
g=9.81;
l=1;
dx=zeros(2,1);
dx(1)=x(2);
dx(2)=-g/l*sin(x(1));
计算程序:
>> tspan=[0 4];
>> x0=[pi/2 0];
>> [t,x]=ode45(@myfun,tspan,x0);
>>
3. 目前使用匿名函数比较多,而且比较方便:
>> clear
>> g=9.81;
>> l=1;
>> fun=@(t,x)[x(2);-g/l*sin(x(1))];
>> tspan=[0 4];
>> x0=[pi/2 0];
>> [t,x]=ode45(fun,tspan,x0);
>>