N=input('请输入曲率均分个数:');
x = 0:0.01:2*pi;
y = sin(x);
x1 = diff(x);% 一阶导
x2 = diff(x1);% 二阶导
y1 = diff(y);
y2 = diff(y1);
x2(length(x1)) = x2(end);% 使数组维度一致
y2(length(y1)) = y2(end);
k = abs(x1.*y2 - x2.*y1)./(x1.^2 + y1.^2).^(3/2);
k(length(x)) = k(end);
deltaS = k/N;
posX = zeros(N+1, 1);
posY = zeros(N+1, 1);
posX(1) = x(1);
posY(1) = y(1);
for i = 2:N+1
deltaT = deltaS(i-1)/sqrt(1 + (i-1)^2);
posX(i) = posX(i-1) + deltaT*cos(atan((i-1));
posY(i) = posY(i-1) + deltaT*sin(atan((i-1));
end
plot(posX, posY);
title('分割后的曲线图');
xlabel('X');
ylabel('Y');
20220709修改:后续的悬臂梁以及均布载荷的求算已经加上啦!同时我将它做成了matlab的APP,详情转到我的新博客:
【材料力学】基于Matlab APP Designer 开发的绘制静定梁剪力、弯矩与挠曲线的软件
梁的弯曲变形时材料力学中十分重要的研究内容,我自行设计了matlab代码以求算通过铰支座固定的梁,在多个外加集中力或是集中力偶矩的作用下,绘制梁统一的挠曲线(悬臂梁与集中载荷功能后续开发)。如有错误,欢迎交流指正。