簡體   English   中英

在MATLAB中從已知點到擬合曲線中的點繪制一條線

[英]Plotting a Line from a known point to points in a fitted curve in MATLAB

我有一組數據,其點已在MATLAB中使用2的冪進行繪制和擬合。 我試圖在該曲線上繪制3條線作為切線。 這些線中的每條線都從說(x,y)的坐標開始:(2,0)(4,0)(9,0)。

MATLAB是否可以從曲線到第一個已知點繪制線,直到該線與曲線只有一個解(與曲線相切)?

我覺得這需要某種指定的時間間隔,該時間間隔告訴MATLAB逐步移動坐標直到找到最接近的點。 有誰知道這已經完成還是可以完成?

要從不在曲線上的點開始繪制一條與之相切的線。 如果是y = 2 ^ x的凸函數,則只能從曲線下方的點開始(而不是在曲線上方)。

由於您已經有了該點(稱為(a,b)),因此需要這樣一條直線的斜率。 斜率由值(yb)/(xa)確定,其中(x,y)越過曲線。 具體而言,“前瞻”切線的斜率等於在所有x> a上的(yb)/(xa)的最​​小值。 並且“向后看”切線的斜率等於所有x上的(yb)/(xa)的最​​大值

這是上述方法的非常簡單的實現:我使用find將搜索限制為x> a或x <a,並使用minmax來找到斜率。

x = 0:0.01:4;
y = 2.^x;
a = 2; 
b = 3;
k = min((y(find(x>a))-b)./(x(find(x>a))-a));
plot(x,y)
hold on
plot(x,k*(x-a)+b,'r')
k = max((y(find(x<a))-b)./(x(find(x<a))-a));
plot(x,k*(x-a)+b,'g')

切線

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM