怎样用matlab解非线性微分方程
请问用matlab怎么解dx/dt=2y^2-2dy/dt=2yz-x-1dz/zt=2z^2-2y-4x(3)=1,y(3)=0,z(3)=2只知道一个边值求在[0,3...
请问用matlab怎么解
dx/dt=2y^2-2
dy/dt=2yz-x-1
dz/zt=2z^2-2y-4
x(3)=1,y(3)=0,z(3)=2 只知道一个边值
求在[0,3]上的解,有表达式更好,数值解也行,或者能得出[0,3]上的曲线也行,谢谢 展开
dx/dt=2y^2-2
dy/dt=2yz-x-1
dz/zt=2z^2-2y-4
x(3)=1,y(3)=0,z(3)=2 只知道一个边值
求在[0,3]上的解,有表达式更好,数值解也行,或者能得出[0,3]上的曲线也行,谢谢 展开
4个回答
展开全部
%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2
%
%关于【微分法的Matlab求解详解】参见http://www.matlabsky.com/thread-526-1-2.html其中对微分方程的Matlab讲解分析的很透彻
%
%选取状态变量
%x1=x,x2=y,x3=z
%各状态变量的一阶导数
%x1'=x'=2*x(2)^2-2
%x2'=y'=2*x(2)*x(3)-x(1)-1
%x3'=z'=2*x(3)^2-2*x(2)-4
%
%微分方程表达式
odefun=@(t,x)[2*x(2).^2-2
2*x(2).*x(3)-x(1)-1
2*x(3).^2-2*x(2)-4];
%初值,就是各个状态变量的初值
x0=[1 0 2];
%微分变量区间
tspan=[3 0]; %注意这里必须写成[3 0]写成[0 3]是错误的,一楼就是错误的
%调用ode45函数
[t,x]=ode45(odefun,tspan,x0);
%绘制[x,y,z]曲线
plot3(x(:,1),x(:,2),x(:,3))
x
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2
%
%关于【微分法的Matlab求解详解】参见http://www.matlabsky.com/thread-526-1-2.html其中对微分方程的Matlab讲解分析的很透彻
%
%选取状态变量
%x1=x,x2=y,x3=z
%各状态变量的一阶导数
%x1'=x'=2*x(2)^2-2
%x2'=y'=2*x(2)*x(3)-x(1)-1
%x3'=z'=2*x(3)^2-2*x(2)-4
%
%微分方程表达式
odefun=@(t,x)[2*x(2).^2-2
2*x(2).*x(3)-x(1)-1
2*x(3).^2-2*x(2)-4];
%初值,就是各个状态变量的初值
x0=[1 0 2];
%微分变量区间
tspan=[3 0]; %注意这里必须写成[3 0]写成[0 3]是错误的,一楼就是错误的
%调用ode45函数
[t,x]=ode45(odefun,tspan,x0);
%绘制[x,y,z]曲线
plot3(x(:,1),x(:,2),x(:,3))
x
富港检测技术(东莞)有限公司_
2024-04-02 广告
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
展开全部
用MATLAB中的龙哥库塔法
[T,Y]=ode45(@myfun,[0 3],[1;0;2]);
plot(Y(:,1),Y(:,2),Y(:,3))
function dx=myfun(t,x)
%x=x(1) y=x(2) z=x(3)
dx(1,1)=2*x(2)^2-2;
dx(2,1)=2*x(2)*x(3)-x(1)-1;
dx(3,1)=2*x(3)^2-2*x(2)-4;
当然你也可以用其他的数值解法,这类的数值解法很多
[T,Y]=ode45(@myfun,[0 3],[1;0;2]);
plot(Y(:,1),Y(:,2),Y(:,3))
function dx=myfun(t,x)
%x=x(1) y=x(2) z=x(3)
dx(1,1)=2*x(2)^2-2;
dx(2,1)=2*x(2)*x(3)-x(1)-1;
dx(3,1)=2*x(3)^2-2*x(2)-4;
当然你也可以用其他的数值解法,这类的数值解法很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先可以肯定的告诉你,matlab本身有个pde工具箱,可以求解一般的典型二阶线性偏微分方程。但是,对于非线性的偏微分方程,我估计很难直接用matlab的工具箱或者函数命令得到结果。因为这涉及到一个数学处理的问题,你首先要处理这个非线性问题,或者用数值的方法处理,然后再用matlab编程计算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用解析法试了,不行。
>>
dsolve('D2x=3*x^2+Dx+3*x^5+3*x^2*x')
到底是哪一个啊?
>>
dsolve('D2x=3*x^2+Dx+3*x^5+3*x^(2*x)')
告诉初始条件,用数值解法吧。
>>
dsolve('D2x=3*x^2+Dx+3*x^5+3*x^2*x')
到底是哪一个啊?
>>
dsolve('D2x=3*x^2+Dx+3*x^5+3*x^(2*x)')
告诉初始条件,用数值解法吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询