matlab如何提取一条曲线与y=50直线的交点坐标?
我的曲线是用离散点semilogx(x,y)出来的,我只想找出y=50时x的坐标,曲线界面上显示,不用鼠标去点就能显示,请给个提示,实例也行。两组数x=[0.010.10...
我的曲线是用离散点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]; 展开
两组数 x=[0.01 0.1 0.3 0.7 1 10 50 88];
y=[10 30 46 55 60 88 97 100]; 展开
4个回答
展开全部
根据该曲线的不同形式,有如下不同的实现方法:
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、为了便于观察,下面将结果显示在图形上
展开全部
如果知道两曲线的数学形式,最好数学上解方程组,求得交点
如果不知道,或者方程组不好解,只能求得近似交点,用判断语句
如两个曲线的坐标数组分别是(x1,y1),(x1,y2)(这个需要知道两个函数的交点的x范围是x1,且x1的步长足够小):find(abs(y1-y2)<=eps)
再有,如果纯粹是一些数据画的图,横坐标不同即(x1,y1),(x2,y2)
可以数据拟合两条曲线,用多项式拟合或指数拟合,或其他拟合,拟合出函数形式,解方程。
如果不知道,或者方程组不好解,只能求得近似交点,用判断语句
如两个曲线的坐标数组分别是(x1,y1),(x1,y2)(这个需要知道两个函数的交点的x范围是x1,且x1的步长足够小):find(abs(y1-y2)<=eps)
再有,如果纯粹是一些数据画的图,横坐标不同即(x1,y1),(x2,y2)
可以数据拟合两条曲线,用多项式拟合或指数拟合,或其他拟合,拟合出函数形式,解方程。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插值就行了啊
interp1(y, x, 50)
默认为线性插值,doc interp1一下,还有好几种不同的方法。
interp1(y, x, 50)
默认为线性插值,doc interp1一下,还有好几种不同的方法。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你的曲线是什么样子的了,如果是单调的话。
最简单的是用
interp
最简单的是用
interp
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询