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];
展开
 我来答
learneroner
高粉答主

推荐于2018-02-27 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6632万
展开全部

根据该曲线的不同形式,有如下不同的实现方法:

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、为了便于观察,下面将结果显示在图形上

顺畅又灵秀丶君子兰1175
推荐于2018-07-31 · TA获得超过1247个赞
知道小有建树答主
回答量:889
采纳率:100%
帮助的人:635万
展开全部
如果知道两曲线的数学形式,最好数学上解方程组,求得交点
如果不知道,或者方程组不好解,只能求得近似交点,用判断语句
如两个曲线的坐标数组分别是(x1,y1),(x1,y2)(这个需要知道两个函数的交点的x范围是x1,且x1的步长足够小):find(abs(y1-y2)<=eps)

再有,如果纯粹是一些数据画的图,横坐标不同即(x1,y1),(x2,y2)
可以数据拟合两条曲线,用多项式拟合或指数拟合,或其他拟合,拟合出函数形式,解方程。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Frank7258
2011-01-19 · TA获得超过1503个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:554万
展开全部
插值就行了啊

interp1(y, x, 50)

默认为线性插值,doc interp1一下,还有好几种不同的方法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xucheng_0621
2011-01-18
知道答主
回答量:41
采纳率:0%
帮助的人:20.8万
展开全部
看你的曲线是什么样子的了,如果是单调的话。
最简单的是用
interp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式