Writing mathematical function in code

Hi! Can somebody help me how to write the following function in Matlab?
(1/2*N)*||x||^2 + (1/2*N) Σ max(0.1-(v(i)*(x0+u(i)*x))^2) with i from 1 up to N
I thought to start from the max but i only know how to calculate the max of a matrix. Should i put the prices of (0.1-(v(i)*(x0+u(i)*x))^2) in a matrix and then find the max?
Thank you.

3 Comments

Should i put the prices of (0.1-(v(i)*(x0+u(i)*x))^2) in a matrix and then find the max?
Possibly. You could vectorize,
(0.1-(v.*(x0+u.*x)).^2)
however it is not clear to me what max() is being taken with respect of. Is x possibly a vector?
If x is a vector then
max(0.1-(v(:).*(x0(:).'+u(:).*x(:).')).^2, 2)
would be the maximum over the x, in vectorized form. This requires R2016b or later to work as written.
The (:).' there are forcing whatever shape x0 and x are, to become row vectors. If you know for sure that x0 and x are row vectors then you can remove the (:).' operations (but you still need the (:) on v and u)
Thank you for the answer! I know that x belongs to R^n and that x0 belongs to R.
max(0.1-(v(:).*(x0+u(:).*x(:).')).^2, 2)

Sign in to comment.

Answers (0)

Categories

Find more on Surfaces, Volumes, and Polygons in Help Center and File Exchange

Asked:

on 28 Nov 2019

Commented:

on 28 Nov 2019

Community Treasure Hunt

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

Start Hunting!