matlab中怎样对微分方程的分段函数绘图?

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:01:14
做一个工程项目 遇到数学仿真问题 这才觉得自己数学功底太差了 MATLAB也不行

比如说

dy=x*y 0<x<1
dy=2x*y x>1
这个方程在matlab 中怎么绘图呢? 如果是单独的一个微分方程我们可以用 ode调用 然后 plot就可以了 这个分段的微分方程把我整郁闷了:)

还有 如果解 微分方程dy=x*y后 我能不能 得出y=某一特定值时的x值呢?如y=1 那么x=? 呵呵 不好意思 两个问题了 望高手解答

能画一个当然也能画多个了。
画第二个之前用plot on命令,这样后面再绘图的时候就都画在同一个坐标图里面了。
如果你用的ode函数,注意参数t或者你给的例子是x,范围要按你分段的那么分,得出的数据才会在绘图中也分段。也就是说分段放在ode函数里,不是放在plot里。

另外很多微分方程可以直接解出来的,用dsolve函数。
比如你给的这个例子就可以,只不过解出来的y=C1*exp(x*t)和y=C1*exp(2*x*t),里面含有两个待定系数,要先给出初始值或者边界条件,把系数确定,才能绘图的。这时分段范围就可以直接放在plot函数里了。

对于第二个问题,用ode解的微分方程确定不了反函数。
可以用dsolve解出微分方程,然后再用solve,把x当未知数,求出用y表示的x。
再代入y的特定值,就可以求出对应的x了。

这个软件是啥东西?我已经看到几个人在试用了。

微分方程肯定不能像你那样求解。只能先解再代值。说白了,你把y代为特值时,x与y成了完全独立的两个变量。

可以解的,在MATLAB里面,找pdepe,看帮助

dy=x*y 0<x<1
===>y = C1*exp(0.5*x^2)

dy=2x*y x>1
===>y = C2*exp(x^2)

没有初值 无法求出C值
得到表示式绘图还是比较简单的