我的曲线是用离散点semilogx(x,y)出来的,我只想找出y=50时x的坐标,曲线界面上显示,不用鼠标去点就能显示,请给个提示,实例也行。
两组数 x=[0.01 0.1 0.3 0.7 1 10 50 88];
y=[10 30 46 55 60 88 97 100];
根据该曲线的不同形式,有如下不同的实现方法:
1、如果已知曲线的表达式,那么可以直接使用solve()函数求解方程得到交点坐标。
2、如果曲线由散点给出,则可以使用插值函数interp1()近似得到交点坐标
下面分别演示这两种情形:
一、求曲线y=2*x^2与直线y=50的交点
1、分析:
求曲线y=2*x^2与直线y=50的交点,只需要求解方程2*x^2=50即可
2、求解:
打开matlab软件,在命令窗口输入如下代码:x = solve('2*x^2=50'),表示使用solve()函数解方程
3、结果如下:
二、插值法求散点曲线与y=50直线的交点,散点数据为:
x=[0.01 0.1 0.3 0.7 1 10 50 88];
y=[10 30 46 55 60 88 97 100];
1、分析:
因为要求与y=50的交点,所以需要将y看做自变量,x作为因变量,然后通过y=50来插值x的值。
2、代码:
在命令窗口输入如下代码:x0 = interp1(y,x,50) ,表示根据数据(y,x)来插值y=50时x的值,结果如下图所示:
3、为了便于观察,下面将结果显示在图形上