matlab 在曲线上画其切线的问题

2025-03-10 12:14:47
推荐回答(2个)
回答1:

clc;clear
x = (0:1:20)';
y = -10*(x).^1.2+x.^2+20*(rand(numel(x),1)-1);%我随便给出的xy值你可以改
plot(x,y,'r-')
p = polyfit(x,y,2);
ynew = polyval(p,x);
hold on
plot(x,ynew,'g-')
p1 = polyder(p);
% 求x0 y0处的切线
x0 = 10;
y0 = polyval(p,x0);
y01 = polyval(p1,x0);
y1 = y01*(x-x0)+y0;
plot(x,y1,'b-')
legend('原曲线','拟合曲线','切线')
box off
grid on

结果展示

回答2:

一条曲线可以画出无穷多条切线, 故画切线要指定切点,然后过该点画切线,此条切线的斜率由导函数求出