matlab的dsolve求不出精确解,如何用ode函数求得数值解?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 05:19:18
matlab的dsolve求不出精确解,如何用ode函数求得数值解?
spsilon=0.001
这是一个边值问题(BVP),可用bvp4c求% 解的初始估计
solinit = bvpinit(linspace(0,1,100),[1 -50]);
% BVP问题求解
e = 0.001;
ode = @(x,y) [y(2); ((x^2+1)*y(2)-x^3*y(1))/e];
bc = @(ya,yb)[ya(1)-1; yb(1)-1];
sol = bvp4c(ode,bc,solinit);
% 结果绘图
x=sol.x;
vars={'y', 'y'''};
for i=1:length(vars)
subplot(2,1,i);
plot(x,sol.y(i,:));
xlabel('x');
ylabel(vars{i});
end
solinit = bvpinit(linspace(0,1,100),[1 -50]);
% BVP问题求解
e = 0.001;
ode = @(x,y) [y(2); ((x^2+1)*y(2)-x^3*y(1))/e];
bc = @(ya,yb)[ya(1)-1; yb(1)-1];
sol = bvp4c(ode,bc,solinit);
% 结果绘图
x=sol.x;
vars={'y', 'y'''};
for i=1:length(vars)
subplot(2,1,i);
plot(x,sol.y(i,:));
xlabel('x');
ylabel(vars{i});
end