函数tan(a)-tan(b)=0的自动二分法

3次浏览(过去30天)
编辑:我不是在寻找一个完整的代码,只是关于如何改进下面的代码的提示。
大家好,我对MATLAB比较陌生,我想知道是否有人能帮我用平分法解这个方程。我只知道如何手动进行等分方法(我必须自己挑选点并从中找到根),我想知道是否有一种方法可以自动执行更大的间隔函数。
如果我们有一个函数
我们要找出满足这个关系的所有解用二分法给出这个条件万博 尤文图斯 如何使函数自动化,使它自动以矩阵的形式给出解第一列是万博 尤文图斯 一个 值和第二列是补项 b 价值观,还是相反?
这是函数代码:
函数Ftan = Ftan (a,b)
Ftan = tan(a)-tan(b);
结束
这是手动分割的函数:
函数[y1 y2] = bisecftan(a,y1,y2,tol)
呃= abs (y1 y2);
犯错>托尔
X = (y1+y2)/2;
如果ftan (x) > 0
Y1 = x;
elseifftan (x) < 0
Y2 = x;
其他的
打破
结束
Err = abs((y1-y2)/x);
结束
结束
编辑:我想修复 一个 一直到 b 在while循环中,并以矩阵的形式获得结果。

答案(1)

约翰D 'Errico
约翰D 'Errico 2021年10月23日
编辑:约翰D 'Errico 2021年10月23日
我很抱歉,但是可以证明,让平分(或任何类似的格式)总是找到任意复杂问题的所有解是不可能的。万博 尤文图斯对不起,但这是事实。
然而,你可能要做的是在这个区间上的一个常规点列表上求函数值。如果函数在这些连续的点对之间改变符号,那么您将使用您的平分方案,返回该子区间上的根。把你找到的所有根列一个清单,你就完成了。这并不能保证你找到所有的根,但如果点的列表足够好,那么它会找到大部分的根。
要我为你写代码吗?当然不是。这是你的作业,不是我的。
3评论

登录评论。

类别

了解更多循环和条件语句帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的