fsolve does not work when combining functions

2 views (last 30 days)
i have the following functions:
f1 = @(k1)108.4*k1
f2 = @(k2)108.4*k2
f3 = @(k3)108.4*k3
f1,f2,f3 are automatically generated, and can be very different. i would like to have a unifying function
f = f1 + f2 + f3
and i want to call f in solvers such as fsolve or fmincon. these are some suggestions i recieved:
sumf = @(k1,k2,k3) f1(k1)+f2(k2)+f3(k3);
sumf( 1, 2, 3 )
ans =
650.4000
or
sumf = @(k) f1(k)+f2(k)+f3(k);
sumf( 2 )
ans =
650.4000
but fsolve does not accept
sumf = @(k1,k2,k3) f1(k1)+f2(k2)+f3(k3);
fsolve takes the function in the form
sumf = @(k) f1(k(1))+f2(k(2))+f3(k(3));
is there any way to combine them so that they can be put into fsolve ?

Accepted Answer

Matt Fig
Matt Fig on 28 Sep 2012
Edited: Matt Fig on 28 Sep 2012
Why won't this work?
sumf = @(k) f1(k(1))+f2(k(2))+f3(k(3));
sumf([1 2 3].')
fsolve(sumf,[3;1;2])

More Answers (0)

Community Treasure Hunt

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

Start Hunting!