如何找到交叉线和曲线

97(30天)
妮可Mezher
妮可Mezher 2020年4月3日
评论道: Garvit Amipara 2021年4月9日
我试图找到我的每个地方在matlab曲线相交直线y = 0.01。
我怎么能这样做呢?
这是我到目前为止尝试写道:
%找到曲线方程
p = polyfit (s Receptive_Field 4);
p2 = polyfit(年代,沃豪分公司0.5 *加工工厂(年代,锗硅),2);
%这就是情节包含
情节(年代,沃豪分公司(0.5 *加工工厂(年代,锗硅)),“。b”)
持有
Receptive_Field情节(年代,“r”)
情节(-10 [10]、[0.01 - 0.01],凯西:”)
持有

接受的答案

约翰D 'Errico
约翰D 'Errico 2020年4月3日
编辑:约翰D 'Errico 2020年4月3日
只是因为你拥有唯一的工具是一把锤子并不意味着每个问题都必须被视为itf钉。同样,仅仅因为你知道如何使用的唯一工具是polyfit,不利用远程,一个好主意。
最简单的解决方案是使用一个工具用来解决你的问题。几乎可以肯定,这里的适当的工具是一个样条模型,一些不特定的排序。然而,你也可以轻易地使用工具,使用线性插值,那将是非常准确的。实际上,线性插值可以被视为只是一个低阶样条。
你没有提供任何数据,所以我不能直接告诉你如何解决这个问题,所以我需要一些数据。遗憾的是,我不是今天感觉很有创意,但是真的是没有创造性的需要。简单的会。
x = 5: .1:5;
y = sin (x);
情节(x, y,“o”)
yline (0.1);
好的。所以我们怎样才能找到我的简单函数的十字路口的位置,与水平线在y = = 0.1 ?是的,我知道,发生在问题的多种解决方案sin (x) = = 0.1。金宝搏官方网站那又怎样?事实上,有多种解决方案,我们希望找到他们。金宝搏官方网站然而,对于比较的目的,这将是有用的使用最佳的解析解。住在这里的首要解决方案:
x0 =正如(0.1);
x0 =
0.10016742116156
无限多的地方,但也有解决方案的三个解决金宝搏官方网站方案,我们应该找到图形位于:
x0 =[-π- x0, x0,π- x0];
sin (x0)
ans =
0.0999999999999998 0.1 0.1
你应该看到,所有三个元素x0产量所需的值为罪(x0)。微小的差异在其中一个是浮点垃圾的最低有效位。
现在我们应该如何找到这些点吗?不要使用POLYFIT !不要使用POLYFIT !不要使用POLYFIT ! ! ! !我说了三次,所以它必须是真实的。
相反,我们需要使用一个有效的工具。第一个我建议是道格·施瓦兹的十字路口的工具。它生活在文件交换。(以下链接)。
[xlin, ylin] =十字路口(x, y, 5 [5], [。1。1)
xlin =
-3.24188910837421
0.10016854536593
3.04131030579016
ylin =
0.1
0.1
0.1
十字路口只使用线性插值来找到这些点的十字路口。事实上,每个人都看起来是正确的在大约4位有效数字。
接下来,我们可以使用样条。样条或pchip将接受在这里,尽管样条对许多问题可能更准确。pchip也将是好的,有时最好的问题重要的斜率变化,或平坦的区域,使用样条可能导致响行为。
我将使用自己的工具来生成的功能逆样条给三个解决方案。金宝搏官方网站(再一次,你可以下载我的SLM工具箱文件交换。最后我给一个链接)。
spl1 = pchip (x, y);
xpchip = slmsolve (spl1, 0.1)
xpchip =
-3.24176645744013 0.100167703314966 3.04143262180259
spl2 =花键(x, y);
xspline = slmsolve (spl2, 0.1)
xspline =
-3.24176010343974 0.100167421255852 3.04142521171113
现在,我们做的怎么样?
abs (x0 xlin”)
ans =
0.000129033622857655 - 1.12420437066441 e-06 0.000114926638069335
abs (x0 - xpchip)
ans =
7.3893743612885 6.38268877750647 2.82153406486185 e-06 e-07 e-06
abs (x0 - xspline)
ans =
2.0717103588197 2.86883903299895 9.42918382262903 e-08 e-11 e-08
说实话,任何可能的三个解决方案可能是最充足的目的。金宝搏官方网站但看在上帝的份上,不要用POLYFIT !仅仅因为泰勒级数实际上是由多项式,并不意味着他们是一个不错的选择。
在这里找到路口免费下载的文件交换:
找到slmsolve (SLM工具箱的一部分)免费下载的文件交换:
我的注意,尽管部分SLM工具箱使用优化工具箱,slmsolve使用本身没什么特别的。
1评论
Garvit Amipara
Garvit Amipara 2021年4月9日
我下面的一些其他问题和建议解决方案使用polyfit,花了很多时间来解决问题,没有工作!金宝搏官方网站你的回答帮助很大!谢谢你的警告:不要使用POLYFIT !

登录置评。

更多的答案(0)

下载188bet金宝搏


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!