Löytää Kaikki Juuret polynomifunktion Toiminta

Käyttö vpasolve löytää kaikki ratkaisut funktio f(x)=6×7-2 x 6+3×3-8.

syms f(x)f(x) = 6*x^7-2*x^6+3*x^3-8;sol = vpasolve(f)

vpasolve palaa seitsemän juuret toiminto, kuten odotettua, koska toiminto on polynomin aste seitsemän.,

Etsi Nollia, on Nonpolynomial Toiminto Käyttämällä Search-Alueet ja lähtökohdat

tontti funktio f(x)=e(x/7)cos(2x) paljastaa määräajoin nollia, yhä rinteillä nolla pistettä, kun x kasvaa.

syms xh = fplot(exp(x/7)*cos(2*x),);grid on

Käyttö vpasolve löytää nolla toiminto f. Huomaa, että vpasolve palauttaa vain yhden nonpolynomiaaliyhtälön ratkaisun, vaikka ratkaisuja olisi useita., On repeated calls, vpasolve returns the same result.

f = exp(x/7)*cos(2*x);for k = 1:3 vpasolve(f,x)end
ans = -7.0685834705770347865409476123789-vpa('7.0685834705770347865409476123789')
ans = -7.0685834705770347865409476123789-vpa('7.0685834705770347865409476123789')
ans = -7.0685834705770347865409476123789-vpa('7.0685834705770347865409476123789')

To find multiple solutions, set the option 'Random' to true. This makes vpasolve choose starting points randomly., For information on the algorithm that chooses random starting points, see Algorithms on the vpasolve page.

for k = 1:3 vpasolve(f,x,'Random',true)end
ans = -226.98006922186256147892598444194-vpa('226.98006922186256147892598444194')
ans = 98.174770424681038701957605727484vpa('98.174770424681038701957605727484')
ans = 52.621676947629036744249276669932vpa('52.621676947629036744249276669932')

To find a zero close to x=10, set the starting point to 10.,

vpasolve(f,x,10)
ans = 10.210176124166828025003590995658vpa('10.210176124166828025003590995658')

löytää nolla majoitusliike, x=1000, aseta lähtökohta 1000.

vpasolve(f,x,1000)
ans = 999.8118620049516981407362567287vpa('999.8118620049516981407362567287')

löytää nolla välillä 15≤x≤25, määritä haun alue .,

vpasolve(f,x,)
ans = 21.205750411731104359622842837137vpa('21.205750411731104359622842837137')

löytää useita nollia alue , et voi soittaa vpasolve toistuvasti, koska se palauttaa saman tuloksen jokaisen puhelun, kuten aiemmin on esitetty. Sen sijaan, aseta hakualue ja asettaa 'Random' ja true.,

for k = 1:3 vpasolve(f,x,,'Random',true)end
ans = 21.205750411731104359622842837137vpa('21.205750411731104359622842837137')
ans = 21.205750411731104359622842837137vpa('21.205750411731104359622842837137')
ans = 16.493361431346414501928877762217vpa('16.493361431346414501928877762217')

Koska 'Random' valitsee lähtökohdat satunnaisesti, sama ratkaisu saattaa löytyä peräkkäiset puhelut.,

Löytää Kaikki Nollia Määritelty Haku Alue

Luo toiminto findzeros järjestelmällisesti löytää kaikki nollat f tietyssä search-alue, tietyn virhe toleranssi. Funktio alkaa tulonhakualueella ja kutsuu vpasolve etsimään Nollaa. Sitten, se jakaa hakualue kahteen noin nolla arvo ja kutsuu itseään rekursiivisesti kanssa uusi haku vaihtelee panoksina löytää enemmän nollia.

funktio selitetään osioittain tässä.,

ilmoittaa funktion kolmella syötteellä ja yhdellä ulostulolla. Ensimmäinen syöttö on toiminto, toinen tulo on alue, ja valinnainen kolmas input avulla voit määrittää virheen välillä nolla ja korkeampi ja alempi rajat syntyvät siitä.

function sol = findzeros(f,range,err)

Jos et määritä valinnainen argumentti virhe toleranssi, findzeros asetetaan err ja 0.001.

if nargin < 2 err = 1e-3;end

Löytää nolla, etsi-alueella käyttäen vpasolve.,

sol = vpasolve(f,range);

– Jos vpasolve ei löydä nolla, poistu.

if(isempty(sol)) return

– Jos vpasolve löytää nolla, jakaa hakualue kahteen haku vaihtelee yli ja alle nollan.

else lowLimit = sol-err; highLimit = sol+err;

Soittaa findzeros pienempi hakualue. Jos findzeros palauttaa nollat, kopioi arvot ratkaisurivistöön ja lajittele ne.

 temp = findzeros(f,,1); if ~isempty(temp) sol = sort(); end

Soittaa findzeros suurempi hakualue., Jos findzeros palauttaa nollat, kopioi arvot ratkaisurivistöön ja lajittele ne.

 temp = findzeros(f,,1); if ~isempty(temp) sol = sort(); end returnendend

koko toiminto findzeros on seuraava. Tallenna tämä funktio nimellä findzeros.m nykyiseen kansioon.

syms f(x)f(x) = exp(x/7)*cos(2*x);sol = findzeros(f,)'

Saada Ratkaisuja Mielivaltaisen Tarkkuuden

Käyttö digits asettaa tarkkuus ratkaisut palautetaan vpasolve., Oletuksena vpasolve palauttaa ratkaisut 32 merkitsevän luvun tarkkuudella.

f = exp(x/7)*cos(2*x);vpasolve(f)
ans = -7.0685834705770347865409476123789-vpa('7.0685834705770347865409476123789')

Käyttö digits lisätä tarkkuus 64 merkittäviä lukuja. Kun muokkaat digits, varmista, että tallennat sen nykyisen arvon niin, että voit palauttaa sen.,

digitsOld = digits;digits(64)vpasolve(f)
ans = -7.068583470577034786540947612378881489443631148593988097193625333-vpa('7.068583470577034786540947612378881489443631148593988097193625333')

Seuraava, muuttaa tarkkuus ratkaisuja 16 merkitsevän numeron tarkkuudella.

digits(16)

Ratkaista Monimuuttuja Yhtälöitä Käyttäen Search-Alueet

Harkitse seuraavia järjestelmän yhtälöt.

z=10(cos(x)+cos(y))z=x+y2-0.1x2yx+y-2.7=0,

juoni yhtälöt 0≤x≤2, 5 ja 0≤x≤2.5 osoittaa, että kolme pinnat leikkaavat kaksi pistettä., Hahmottaaksesi juonen paremmin, käytä view. Mittakaavassa värikartan arvot, käytä caxis.

Käyttö vpasolve löytää kohta, jossa pinnat leikkaavat. Funktio vpasolve palauttaa rakenteen. Käyttää x-, y ja z-arvot ratkaisu, indeksi rakenteeseen.,

sol = vpasolve(equations);

etsiä alueen ratkaisu tilaa, määritä haku vaihtelee muuttujia. Jos määrität vaihtelee 0≤x≤1.5 ja 1.5≤y≤2.5, sitten vpasolve toiminto etsii rajoittuu alue näytetään.

Käyttö vpasolve löytää ratkaisu tähän search-alue. Jos haluat jättää pois z: n hakualueen, aseta kolmas hakualue .,

vars = ;range = ;sol = vpasolve(equations, vars, range);

löytää useita ratkaisuja, aseta 'Random' mahdollisuus true. Tämä saa vpasolve käyttämään satunnaisia lähtökohtia peräkkäisillä juoksuilla. 'Random' vaihtoehto voi olla käyttää yhdessä etsiä vaihtelee tekemään vpasolve käyttää random lähtökohdat sisällä hakualue. Koska 'Random' valitsee lähtökohdat satunnaisesti, sama ratkaisu saattaa löytyä peräkkäiset puhelut., Soitavpasolve toistuvasti varmistaaksesi, että löydät molemmat ratkaisut.

piirtää yhtälöt. Päällekkäin ratkaisuja, kuten scatter tontti pistettä keltainen X markkereita käyttäen scatter3. Havainnollistaa juonta paremmin tekemällä kahdesta pinnasta läpinäkyvät alpha. Asteikko värikartan juoni arvoja käyttäen caxis, ja muuttaa näkökulmasta käyttäen view.

vpasolve löytää ratkaisuja risteyksessä pinnat muodostetaan yhtälöt, kuten on esitetty.,

Lastly, restore the old value of digits for further calculations.

digits(digitsOld)

Articles

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *