主题: 两线的交点
查看单个帖子
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 两线的交点

如何获得具有给定表达式或方程式的两个折线图的交点坐标?

例如:L1 = sin(2x),L2 = Ln(x);或其他任何东西。



回答:

令人惊讶的是,还没有人建议在matlab中使用旨在执行此功能的功能。在这里使用fzero。无论如何,Fzero是比fsolve更好的选择,后者需要优化工具箱。而且,是的,您可以使用牛顿法,甚至二等分法或割线法来实现。但是总的来说,重新发明轮子是错误的事情。使用已经存在的功能。

当前的问题是找到一个点

sin(2*x) == log(x) 这里的log(x)是指自然对数。为此,请先减去一个,然后寻找零。

fun = @(x) sin(2*x) - log(x); 在您这样做之前,请始终将其绘制出来。 ezplot可以为您做到这一点。

ezplot(fun) 该图将显示一个介于1和2之间的根。

fzero(fun,2) ans = 1.3994

更多&回答...
poster 当前离线   回复时引用此帖