1 svar
230 visningar
Soderstrom 2767
Postad: 18 dec 2019 02:23 Redigerad: 18 dec 2019 02:38

"fzero" problem - MATLAB

Jag har suttit och tittat på olika videoklipp om hur man använder fzero funktionen. Jag vet hur det går till, men när det kommer till problemlösningar eller lite avancerade problem så sitter jag fast. Nedan har jag en funktion (se bild). Jag anropar den och den fungerar. 

Min uppgift nu är: Att beräkna för vilka "x" som funktionen har värdena (500:550:600.... 3000)
Det jag vet men också är osäker på är att jag ska skriva funktionen som ett nollställsproblem, dvs i detta fall y-h=0, där h är en vektor (500:50:3000) sedan använda mig utav fzero funktionen.

Det är här jag sitter fast. Jag öppnar alltså en ny script, men vet inte vad jag ska börja med. Någon som kan förklara algoritmen?

 

Dr. G 9351
Postad: 18 dec 2019 09:37

Börja med att rita upp funktionen så att du ser vilka x-värden som ger positiva funktionsvärden.

Om du vill få ut ett x-värde som ger hastighet(x) = 600 (inom numeriska fel) så kan du skriva

x0 = fzero(@(x)(hastighet(x) - 600),[xmin,xmax])

x0 är då ett x-värde som ger hastighet(x0) ≈ 600. 

xmin och xmax är två x-värden runt x0 där (hastighet(xmin) - 600) och (hastighet(xmax) - 600) har olika tecken. Välj några lämpliga värden ur grafen. 

För att byta ut 600 mot något av värdena (500:50:3000) så får du skriva en loop. 

Svara Avbryt
Close