% 定义四组xy散点数据 x1 = [0.05, 0.103448, 0.151515, 0.2, 0.25]; y1 = [-0.447321, -0.277143, -0.101953, 0.009087, 0.10446];

x2 = [0.02, 0.057143, 0.104762, 0.164286, 0.228571]; y2 = [-0.321088, -0.172319, -0.028137, 0.100684, 0.213297];

x3 = [0.03, 0.078947, 0.134146, 0.2, 0.276316]; y3 = [-0.279089, -0.15361, -0.040537, 0.069862, 0.160415];

x4 = [0.01, 0.047619, 0.097561, 0.16, 0.235294]; y4 = [-0.422858, -0.294717, -0.172319, -0.049029, 0.069862];

% 对每组数据进行B样条拟合 t1 = linspace(0, 1, length(x1)); pp1 = spline(t1, [x1; y1]);

t2 = linspace(0, 1, length(x2)); pp2 = spline(t2, [x2; y2]);

t3 = linspace(0, 1, length(x3)); pp3 = spline(t3, [x3; y3]);

t4 = linspace(0, 1, length(x4)); pp4 = spline(t4, [x4; y4]);

% 绘制每组数据的B样条拟合曲线 figure(1); subplot(2, 2, 1); fnplt(pp1, 'r', 2); hold on; plot(x1, y1, 'o'); title('Data 1');

subplot(2, 2, 2); fnplt(pp2, 'g', 2); hold on; plot(x2, y2, 'o'); title('Data 2');

subplot(2, 2, 3); fnplt(pp3, 'b', 2); hold on; plot(x3, y3, 'o'); title('Data 3');

subplot(2, 2, 4); fnplt(pp4, 'm', 2); hold on; plot(x4, y4, 'o'); title('Data 4');

% 求导并绘制每组数据的导函数曲线 figure(2); tt = linspace(0, 1, 1000);

subplot(2, 2, 1); yy = ppdiff(pp1, 1); fnplt(yy, 'r', 2); title('Data 1 Derivative');

subplot(2, 2, 2); yy = ppdiff(pp2, 1); fnplt(yy, 'g', 2); title('Data 2 Derivative');

subplot(2, 2, 3); yy = ppdiff(pp3, 1); fnplt(yy, 'b', 2); title('Data 3 Derivative');

subplot(2, 2, 4); yy = ppdiff(pp4, 1); fnplt(yy, 'm', 2); title('Data 4 Derivative');

MATLAB B样条拟合及导数绘制 - 4组XY散点图示例

原文地址: https://www.cveoy.top/t/topic/l4tO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录