MATLAB微分方程问题 dsolve('D2y-t*Dy=1-t^2','y(0)=0.1,Dy(0)=0.2','t')

dsolve('D2y-t*Dy=1-t^2','y(0)=0.1,Dy(0)=0.2','t')functionxdot=exf(t,x)u=(1-t^2);xdot=... dsolve('D2y-t*Dy=1-t^2','y(0)=0.1,Dy(0)=0.2','t')

function xdot=exf(t,x)
u=(1-t^2);
xdot=[0 1;t 0]*x+[0 1]'*u

>> clf
>> t0=0;tf=2;x0t=[0.1 0.2];
>> [t,x]=ode23('exf',[t0,tf],x0t)

y=x(:,1),y2=(t.^2)/2 - (2^(1/2)*pi^(1/2)*erf((2^(1/2)*t*i)/2)*i)/10 + 1/10;就是这一步,一直提醒我错误使用erf,是因为 dsolve('D2y-t*Dy=1-t^2','y(0)=0.1,Dy(0)=0.2','t')
求解出来的有虚数吗,那这道题如何用数值积分方法求解呢
展开
 我来答
lhmhz
高粉答主

2016-12-28 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17008

向TA提问 私信TA
展开全部

问题出在你定义exf(t,x)有错误。

要改成下列形式才对。

function xdot=exf(t,x)

xdot=[x(2);1-t^2+t*x(2)];

end

运行结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式