matlab中如何求两条曲线的交点并在图中标出

时间:2024-04-12 19:03:13

有如下两条曲线:
y1=2sin(x)+0.5x
y2=cos(x)+x
求y1和y2在[0,4π]上的图形,并用红色五角星标出二者的交点。
解答:
第一步:
x=0:pi/100:4pi;
y1=2
sin(x)+0.5*x;
y2=cos(x)+x;
plot(x,y1,‘k–’,x,y2,‘b’)
图像如下:
matlab中如何求两条曲线的交点并在图中标出
第二步:求二者的交点:

求y1与y2的比值,在误差允许的范围内eps求得
d = y1 ./ (y2 + eps); %求二者的比值
ix = find(d > .95 & d < 1.05); //查找比值在0.95到1.05之间的x的下标
x1=x(ix);%得到横坐标矩阵
y3=2sin(x1)+0.5x1;
所以二者的交点就求出来了
重新绘图:
plot(x,y1,‘k–’,x,y2,‘b’,x1,y3,‘rp’)
得到如下图像:
matlab中如何求两条曲线的交点并在图中标出
补充:有些人采用find(abs(y1-y2)<eps)这种写法,实际上不是太好,有时候一个交点都求不出来,所以建议采用比值的形式求出。