Matlab程序代码
%%
clear;clc;
y = dsolve('D2y = sqrt(1+(Dy)^2) / (2*(1-x))', 'y(0) = 0, Dy(0)=0', 'x')
%%
clear;clc;
syms y(x)
Dy = diff(y);
dsolve(diff(y, 2) == sqrt(1+Dy^2) / (2*(1-x)), y(0) == 0, Dy(0) == 0)
%%
clear; clc;
[x,y] = ode23(@(x,y)[y(2); sqrt(1+y(2)^2)./(2*(1-x))],[0 0.99999],[0; 0]);
plot(x, y(:,1), '-o')
%%
clear; clc; close all;
v0 = 0.42 / 60;
v1=2 * v0;
dt = 0.05;
k = 0;
t = 0;
p = [0 0];
q = [1,0];
h = plot([0;1],[0;0],'.');
axis square;
axis([-0.5,1.5,0,1]);
while 1-p(1) > 1e-10
n = (q - p) / norm( q - p );
k = k + 1;
t = t + dt;
q = [1 v0*t];
u(k) = 1;
v(k) = q(2);
p = p + v1 * dt * n;
x(k) = p(1);
y(k) = p(2);
set(h,'xdata',[x';u'],'ydata',[y';v']); drawnow;
end

