查找Trignometric方程的所有根部

3 views (last 30 days)
pooja sudha
pooja sudha 2020年12月30日
评论: Ameer Hamza 2020年12月31日
我们可以使用MATLAB找到Trignometric方程的所有根吗?
为了e.g., tan(x)-x=0.

答案(2)

Ameer Hamza
Ameer Hamza 2020年12月30日
tan(x)的范围为(-inf inf),因此该方程式具有无限数量的溶液。金宝搏官方网站同样,该方程的解决方金宝搏官方网站案不能通过分析表示。没有一般的方法可以找到此类方程式的多个解决方案。金宝搏官方网站一种解决方案是启动具有多个起点的数值求解器,然后选择唯一的值。例如
eq = @(x)tan(x)-x;
x_range = 0:0.1:20;
sols =一个(size(x_range));
为了i = 1:numel(sols)
sols(i)= fsOvel(eq,x_range(i));
结尾
sols = uniquetol(sols, 1e-2);
2条评论
Ameer Hamza
Ameer Hamza 2020年12月31日
是的,那是一个很好的观察,可以给出初始点。解决方案金宝搏官方网站除了每种解决方案。以下还将给出与答案中的结果相同的结果。
eq = @(x)tan(x)-x;
x_range = 0.1:pi:20;
sols =一个(size(x_range));
为了i = 1:numel(sols)
sols(i)= fsOvel(eq,x_range(i));
结尾

登录发表评论。


图像分析师
图像分析师 2020年12月30日
这里是一个方法。使用fminbnd() to find out where the equation is closest to zero:
x = linspace(-1,1,1000);
y = tan(x);
情节(x,x,'b-',,,,'行宽',2);
抓住on;
情节(x,y,'r-',,,,'行宽',2);
网格on;
平等的
%使用fminbnd()查找d = 0的位置,这是tan(x)= x的地方。
Xintersection = fminbnd(@MyFunc,-1.5,1.5)
%放在那里
xline(xIntersection,'Color',,,,'G',,,,'行宽',3);
字幕= sprintf('Xintersection =%f',,,,xIntersection);
标题(标题,'字体大小',,,,20)
functiond = myfunc(x)
d = abs(tan(x) - x);
结尾
你得到
Xintersection =
-1.66533453693773e-16

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

Start Hunting!