How to loop the constant in a function?
Mostra commenti meno recenti
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
Risposta accettata
Più risposte (2)
Jos (10584)
il 10 Ott 2013
0 voti
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 Commenti
Eric
il 10 Ott 2013
Jos (10584)
il 10 Ott 2013
that would be at x = 0 for every k ... No need for matlab at all ;-)
Youssef Khmou
il 10 Ott 2013
Modificato: Youssef Khmou
il 10 Ott 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
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!