another basic question for a beginner
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Eliraz Nahum
il 21 Set 2018
Risposto: Star Strider
il 21 Set 2018
I saw the 2 forms of writing:
- fzero(f,x0)
- fsolve(@(x)f,xo)
in both cases we use symbolic function (f) before the above orders.
I am trying to understand why in the first case we could write only "f", while in the second one we had to write the whole expression "@(x)f"?
0 Commenti
Risposta accettata
Star Strider
il 21 Set 2018
Without knowing the relevant context, it is difficult to say.
The first syntax:
fzero(f,x0)
implies that ‘f’ is a function of one variable, and already exists in the workspace as a function handle.
The second syntax:
fsolve(@(x)f,x0)
actually throws this error when I run it (in R2018b):
Error using fsolve (line 281)
FSOLVE requires all values returned by functions to be of data type double.
The correct way to use that syntax is to express ‘f’ as a function to be evaluated:
fsolve(@(x)f(x),x0)
and this works correctly.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Get Started with MATLAB in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!