# FZERO or some method of computing the intercept points in MATLAB or Mathematica

## Homework Statement

General problem--I don't know how to solve for the characteristic equation in MATLAB or Mathematica to find the solution of an equations such as

## Homework Equations

cosh(x)*cos(x) = x

(I know you can re-write this equation but it's just an example)

## The Attempt at a Solution

In Mathematica I tried:

In:= FindRoot[cos[x]*cosh[x] == x, {x, 0}]

During evaluation of In:= FindRoot::nlnum: The function value \
{0.+cos[0.] cosh[0.]} is not a list of numbers with dimensions {1} at \
{x} = {0.}. >>

Out= FindRoot[cos[x] cosh[x] == x, {x, 0}]

In:= Solve[cos[x]*cosh[x] == x, x]

During evaluation of In:= InverseFunction::ifun: Inverse functions \
are being used. Values may be lost for multivalued inverses. >>

During evaluation of In:= InverseFunction::ifun: Inverse functions \
are being used. Values may be lost for multivalued inverses. >>

During evaluation of In:= Solve::tdep: The equations appear to \
involve the variables to be solved for in an essentially \
non-algebraic way. >>

Out= Solve[cos[x] cosh[x] == x, x]

Is there some method of doing this in either program? I know I can get intersection points on my calculator but that defeats the purpose of using these programs.

Related Engineering and Comp Sci Homework Help News on Phys.org
The Electrician
Gold Member
You used this:

"FindRoot[cos[x]*cosh[x] == x, {x, 0}]"

SImply use capitals for the first letter of the functions like this:

"FindRoot[Cos[x]*Cosh[x] == x, {x, 0}]"

and you'll get x -> 0.893796

Built-in functions in Mathematica all begin with capitals.

Ah thanks for the reminder:

question though, what if I have something more complex like:

In:= FindRoot[1 - Cos[x]*Cosh[x] == x*Sin (x)*Cosh (x), {x, 0}]

During evaluation of In:= FindRoot::nlnum: The function value \
{0.+0. Cosh Sin} is not a list of numbers with dimensions {1} at {x} \
= {0.}. >>

Out= FindRoot[1 - Cos[x] Cosh[x] == x Sin x Cosh x, {x, 0}]

The Electrician
Gold Member
Your problem is that in the part of the expression to the right of the ==, you have used round parentheses to surround the variable x. Change them to square brackets, and it should work. I get a solution of {x -> 0.}.

FindRoot[1 - Cos[x]*Cosh[x] == x*Sin [x]*Cosh [x], {x, 0}]

If I use a starting point of 3, like this:

FindRoot[1 - Cos[x]*Cosh[x] == x*Sin [x]*Cosh [x], {x, 3}]

I get a solution of 2.74914