# Nonlinear Tangent (trigonemetric) equation

2 views (last 30 days)

Show older comments

Could you guys help me the solve following problem. This is the dispersion equation for a symmetric lamb wave. I am looking for the z values for different f (frequencies)? I have attached a paper which has the original equation (equation #1 ). I have to find something similar to Fig 1 a as in the attached folder.

close all

clear all

clc

%cl longitudunal wave speed

%ct transversal wave speed

%cp phase velocity of wave

%cg group velocity of wave

% z=ct/cp;

pi=3.14;

nu=0.33;% poisson ratio

ro=2700;%density kg/m3

E=70e9;% elastic modulus Pa

mu=E/(2*(1+nu)); %shear modulus

cl=((E*(1-nu))/(ro*(1+nu)*(1-2*nu)))^(0.5);

ct=(mu/ro).^(0.5);

k=ct/cl;

f=10:10:3e6;

w=2*pi*f;

d=(w*0.8e-3)/ct;

fzero (@(z) (2*z.^2-1).^2*(sin(sqrt((1-z.^2))*d))*cos(sqrt((k.^2-z.^2.*d)))-(sin(sqrt (k.^2-z.^2.*d)))*cos(sqrt((1-z.^2))*d)*(4*z.^2)*sqrt(1-z.^2)*sqrt(k.^2-z.^2),1)

##### 2 Comments

### Answers (3)

Roger Stafford
on 24 Apr 2017

Edited: Roger Stafford
on 24 Apr 2017

##### 0 Comments

Andrew Newell
on 25 Apr 2017

Before trying to find zeros for a function, it's a good idea to plot it so you understand the nature of the problem. If you do that with this function for f=100, you'll find that it is imaginary except for a particular range of cp and that it is always nonnegative. It touches the cp axis at a couple of points. You'll never find those zeros with fzero.

The good news is, the answer is actually very simple. If you have the Symbolic Toolbox, try the following:

syms dt ct cp dl cl

fun = tan(dt*sqrt(1-ct^2./cp.^2))./tan(dl*sqrt(1-cl^2./cp.^2))+(4*sqrt(1-ct^2./cp.^2).^1.5*ct^3)./((2*ct^2./cp.^2-1).^2*cl.*cp.^2);

pretty(fun)

/ / 2 \ \ / 2 \3/4

| | ct | | 3 | ct |

tan| dt sqrt| 1 - --- | | ct | 1 - --- | 4

| | 2 | | | 2 |

\ \ cp / / \ cp /

------------------------- + ---------------------

/ / 2 \ \ / 2 \2

| | cl | | 2 | 2 ct |

tan| dl sqrt| 1 - --- | | cl cp | ----- - 1 |

| | 2 | | | 2 |

\ \ cp / / \ cp /

It should be obvious where the zeros are, and you can confirm it with:

subs(fun,cp,ct)

ans =

0

subs(fun,cp,-ct)

ans =

0

Note also that it goes to infinity at cp = +-cl and at cp = +- ct*sqrt(2).

##### 0 Comments

### See Also

### Community Treasure Hunt

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

Start Hunting!