Hvordan finne Roots i MATLAB

Røttene til et polynom uttrykk er de verdier av den uavhengige variabelen som forårsaker uttrykket til lik null. Den matematiske databehandling språk og interaktivt miljø MATLAB har "røtter" funksjon som er ideell for å oppdage røttene til polynomet uttrykk. Andre matematiske uttrykk kan ha røtter i tillegg, og "fzero" -funksjonen kan hjelpe deg med å finne en for en vilkårlig uttrykk ved hjelp av numeriske metoder.

Bruksanvisning

Funksjon: røtter

1 Oppbevar koeffisientene til polynomet du vil finne røttene til i en radvektor, i synkende rekkefølge etter makt. For eksempel, for polynomet "4x ^ 2 + 3x - 2," skriver du inn følgende kommando:

f = [4 3 -2]

Velge hva variabelnavnet du ønsker å "f".

2 Skriv inn følgende kommando for å finne røttene til f.

røtter (f)

Røttene vises som en kolonnevektor. Oppbevar dem til en variabel med oppdraget operatør.

r = røtter (f)

3 Før polynom koeffisienter til "røttene" som bokstavelige verdier for å gjøre en rask beregning av røttene uten å bruke variabler.

røtter ([1 0 1])

Dette polynom røtter er komplekse, og er rapportert i rektangulær form.

Funksjon: fzero

4 Lag en anonym funksjon for å lagre uttrykket du ønsker å finne en rot av. For eksempel, for uttrykket "sin (100x) + x / 4", skriver du inn følgende kommando.

f = @ (x) sin (100 * x) + x / 4;

Den "@ (x)" delen av kommandoen angir opprettelsen av en anonym funksjon ved hjelp av uavhengige variabelen "x".

5 Pass "f" til "fzero" og angi et utgangspunkt for å søke etter en rot nær det punktet.

fzero (f, 2)

Det er en rot av dette uttrykk i nærheten av 2, og MATLAB returnerer et numerisk anslag av den. Bekreft dette resultatet ved å sende den returnerte verdien (1,9844) til den anonyme funksjonen.

f (1,9844)

Den viste verdien er nesten null, igjen avslører at "fzero" bruker numeriske metoder for å anslå en rot plassering.

6 Supply "fzero" med grensene for å søke innenfor bruke følgende syntaks.

fzero (f, [- 3 -1])

Hint

  • På grunn av beskaffenheten av sine numeriske metoder, "fzero" vil ikke korrekt identifisere røtter tilsvarende punkter hvor funksjonen berører, men ikke krysser den uavhengige variabelen akse. Det kan også oppstå feil med diskontinuerlige funksjoner.