fsolve does not work when combining functions

1 view (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)

Categories

Find more on Introduction to Installation and Licensing in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!