How to loop the constant in a function?
Show older comments
I'm currently stuck on this most likely rather simple problem, but for some reason I can't get it to work. What I want to do is simply to solve the function f(x,k) for a grid of different k:s. As a very simple example, I'd want to solve
y=(x^2)+k for k=1:1:5
with some kind of for-loop, where the answer thus becomes a vector with 5 different answers. My main track has been to loop the command where I ask Matlab to solve the function, i.e. running a script like
for k=1:1:5
X = fminsearch(@ericr,-2,2)
end
where the function looks like
function [ y ] = ericr(x,k)
y=x^2 + k
end
MATLAB does not like this approach at all, and any help if therefore greatly appreciated!
Best regards,
Eric
Accepted Answer
More Answers (2)
Jos (10584)
on 10 Oct 2013
0 votes
What do you exactly mean by " solve the function "? Do you mean that you have a set of points (X,Y), and you want to fit the function
y = A*(X^2)+k
through it by looking for the value of A that minimises the distances between y and Y, given a specific value of k?
2 Comments
Eric
on 10 Oct 2013
Jos (10584)
on 10 Oct 2013
that would be at x = 0 for every k ... No need for matlab at all ;-)
Youssef Khmou
on 10 Oct 2013
Edited: Youssef Khmou
on 10 Oct 2013
Eric, use anonymous functions better,
Here is your example ( its obvious that k is the y solution):
N=10;
for k=1:N
f=@(x) (x.^2)+k;
[a,b]=fminsearch(f,rand);
X(k,1)=a;
X(k,2)=b;
end
Categories
Find more on Loops and Conditional Statements 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!