A numerical calculation problem leading to Inf or NaN in matlab

I want to calculate the exact value of , where and λ is a very large positive number. Obviously, we have the bound ,and therefore .
However, in reality, for example, if , due to the large λ, we have and the matlab will treat it as 0 and .
On the other hand, if , due to the large λ, we have a very large and matlab will treat the sum as Inf and . So how to avoid the above two cases and get the exact value of F in matlab?

1 Comment

Hi HZ,
(1/lam) log( (x1^lam)*(1 + (x2/x1)^lam + (xn/x1)^lam) )
= log(x1) + (1/lam)*log(1 + (x2/x1)^lam + (xn/x1)^lam))

Sign in to comment.

Answers (2)

log2(norm(x,lambda))
does not work ?

3 Comments

Wow, it really works, thanks bro. I have another question. How about this formulation,, where and λ is still a very large positive number. are just a set of complex constant vectors. This formulation can be seen as a weighted sum of this set of complex vectors and the sum of weight is 1. But directly calculation still has the above problems ( is very very large for and really small for ). So how to avoid the above problem since it cannot be rewritten as a norm form?
Maybe rewriting the expression as
1 / (1 + (x2/x1)^lambda + ... + (xn/x1)^lambda)*u1 +
(x2/x1)^lambda / (1 + (x2/x1)^lambda + ... + (xn/x1)^lambda)*u2 +
(x3/x1)^lambda / (1 + (x2/x1)^lambda + ... + (xn/x1)^lambda)*u3 +
...
(xn/x1)^lambda / (1 + (x2/x1)^lambda + ... + (xn/x1)^lambda)*un
can help.
If not, please give an example for x, u and lambda where the computation fails.

Sign in to comment.

If you need the exact value, calculate using the Symbolic Toolbox.
However, it is questionable what meaning to assign to the exact value of log2 of an expression. It is highly likely that log2 will be an transcendental number -- something that you cannot calculate the exact decimal representation for.

Categories

Find more on Elementary Math in Help Center and File Exchange

Products

Release

R2023b

Asked:

on 20 Jul 2024

Commented:

on 21 Jul 2024

Community Treasure Hunt

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

Start Hunting!