Why does this SIMPLE code not work
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The first and last f1 return the same result, even though x has been changed along the way. Why is this and how to fix it?
x = 1.5
f1= sin(x) + x*cos(x)
f2 = 2*cos(x)-x*sin(x)
x = x - (f1/f2)
f1
Thank you in advance!
0 commentaires
Réponses (1)
Moe_2015
le 25 Mai 2017
In the last line, you are just printing to the screen the result you got in the 2nd line. If you want f1 to be calculated again you need to do so.
x = 1.5
f1= sin(x) + x*cos(x)
f2 = 2*cos(x)-x*sin(x)
x = x - (f1/f2)
f1_new = sin(x) + x*cos(x) % renamed so you can see that it is different than the original f1.
2 commentaires
Moe_2015
le 25 Mai 2017
Modifié(e) : Moe_2015
le 25 Mai 2017
If you want it to work like that you can create an anonymous function making f1 a function handle like this (and f2 also just to remain consistent):
x = 1.5;
f1= @(x) sin(x) + x*cos(x);
f1(x)
f2 = @(x) 2*cos(x)-x*sin(x);
x = x - (f1(x)/f2(x))
f1(x)
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!