您好,我想问一下如何利用Bvp4c编辑器解决微分方程组外加第三类Robin边值问题呢
同学你好,代码供参考,主要思路是把y'(0)、x'(1)、z'(0)转化成对应的微分方程中去表达robin边值问题
function main()
xmesh = linspace(0,1,101);
solinit = bvpinit(xmesh, @guess);
sol = bvp4c(@bvpfcn, @bcfcn, solinit);
plot(sol.x, sol.y(1,:), 'r--'); hold on;
plot(sol.x, sol.y(2,:), 'b-')
plot(sol.x, sol.y(3,:), 'm-.')
legend('x','y','z')
xlabel('t'); ylabel('x-y-z的值')
set(gca,'fontsize',15)
end
function dydt = bvpfcn(t,y) % equation to solve
dydt = zeros(3,1);
dydt(1) = y(3)^2 - 10*y(3) + y(2);
dydt(2) = 10*y(1) - 9*y(2);
dydt(3) = y(1)*y(3) - 20*y(3) + y(2);
end
%--------------------------------
function res = bcfcn(ya,yb) % boundary conditions
res = [
ya(2)-(10*ya(1)-9*ya(2))-1/(2*sqrt(exp(1)))+3/2;
yb(1) + (yb(3)^2-10*yb(3)+yb(2)) - 3/2;
ya(3) + (ya(1)*ya(3)-20*ya(3)+ya(2))-3;
];
end
%--------------------------------
function g = guess(x) % initial guess for x y z
g = [sin(x);
cos(x);
sin(2*x)];
end
%--------------------------------
结果:
如有帮助还烦劳题主给个宝贵的采纳支持一下答主答题哟,非常感谢