Hi, i need to find roots of following equation (x). L and P are constants. using fzero i cant, please guid
(x*L)*tan(x*L)=P
i am attempting as follow but fails:
function C(x)
x*L*tan(x*L))=P

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 5 Mär. 2021
Bearbeitet: Walter Roberson am 5 Mär. 2021

0 Stimmen

format long g
rng(655321)
L = randn()
L =
-0.486212438021384
P = rand() * 10
P =
3.86360763118074
C = @(x) x.*L.*tan(x*L)-P
C = function_handle with value:
@(x)x.*L.*tan(x*L)-P
root1 = fzero(C, pi/3)
root1 =
2.58404586473783
N = 10;
nroots = zeros(1,N);
proots = zeros(1,N);
for K = 1 : N
nroots(K) = fzero(C, root1-K*pi);
proots(K) = fzero(C, root1+K*pi);
end
uniquetol([nroots, root1, proots].')
ans = 19×1
-29.0761112543409 -26.445774714587 -22.6147531978207 -20.1564225125044 -16.1533951413005 -13.9854187445272 -9.6920370847803 -8.06185601128258 -3.2306790282601 2.58404586473783

Weitere Antworten (1)

KSSV
KSSV am 5 Mär. 2021

0 Stimmen

syms x
p = pi/4 ;
L = 2 ;
eqn = x*L*tan(x*L)-p==0 ;
s = vpasolve(eqn,x)

Kategorien

Mehr zu Mathematics and Optimization finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by