Noniin, tuli pulma. Meillä on seuraavat yhtälöt:
Y(t) = C(t) I(t)
C(t) = a * Y(t - 1)
I(t) = b * ( C(t) - C(t - 1) ) c
Lisäksi on annettu erilaisia lähtöarvoja muuttujille a, b ja c sekä alkuarvot C(0) ja I(0).
Näistä tulee muodostaa differenssiyhtälö (eli diskreetti differentiaaliyhtälö) Y:n suhteen. Luulen että olen tehnyt tämän oikein:
Y(t) = a * Y(t - 1) b * ( C(t) - C(t - 1) ) c => a * Y(t - 1) b * ( a * Y(t - 1) - a * Y(t - 2) ) c
Tämä sievenee vielä muotoon:
Y(t) = (a ab) Y( t - 1) - ab( Y (t - 2) ) c
Y(0) tiedetään koska C(0) I(0) on annettu ja Y(1) pystyy käsin laskemaan, jolloin saadaan ratkeava differenssiyhtälö. Kysymys kuuluu: miten ratkaisen tuon differenssiyhtälön analyyttisesti?
Tämä ei ole oikeastaan matematiikan vaan tietotekniikan tehtävä jossa em. yhtälöiden muodostamaa mallia tulee iteroida ohjelmoimalla. Tässä olen uskoakseni onnistunut, mutta tarkastaakseni saamieni tulosten oikeellisuus, pitäisi yhtälöön saada analyyttinen ratkaisu, jossa en ole onnistunut kovasta yrityksestä huolimatta. Olen lähestynyt ongelmaa lähtemällä ratkaisemaan seuraavan homogeenisen yhtälön ominaisarvoja:
y(t) - (a ab) y(t-1) (ab)(y(t-2)) = 0 => muodostetaan karakterinen yhtälö korvaamalla k^2 = y(t) =>
k^2 - (a ab)*k ab = 0
Tästä k asetetaan toisen asteen yhtälön ratkaisukaavaan saadaan diskriminantti
(ab a)^2 - 4ab
Tämä on kuitenkin eräillä alkuarvoilla a, b negatiivinen, joka johtaisi kompleksisiin arvoihin. Tämä taas ei sovi yhteen ohjelmoimalla saamieni ratkaisujen kanssa.
Pahoittelen epäselviä merkintöjä, mutta mikäli täältä löytyy joku joka osaisi ainakin antaa jotain vinkkiä, tulisi tarpeeseen.
Y(t) = C(t) I(t)
C(t) = a * Y(t - 1)
I(t) = b * ( C(t) - C(t - 1) ) c
Lisäksi on annettu erilaisia lähtöarvoja muuttujille a, b ja c sekä alkuarvot C(0) ja I(0).
Näistä tulee muodostaa differenssiyhtälö (eli diskreetti differentiaaliyhtälö) Y:n suhteen. Luulen että olen tehnyt tämän oikein:
Y(t) = a * Y(t - 1) b * ( C(t) - C(t - 1) ) c => a * Y(t - 1) b * ( a * Y(t - 1) - a * Y(t - 2) ) c
Tämä sievenee vielä muotoon:
Y(t) = (a ab) Y( t - 1) - ab( Y (t - 2) ) c
Y(0) tiedetään koska C(0) I(0) on annettu ja Y(1) pystyy käsin laskemaan, jolloin saadaan ratkeava differenssiyhtälö. Kysymys kuuluu: miten ratkaisen tuon differenssiyhtälön analyyttisesti?
Tämä ei ole oikeastaan matematiikan vaan tietotekniikan tehtävä jossa em. yhtälöiden muodostamaa mallia tulee iteroida ohjelmoimalla. Tässä olen uskoakseni onnistunut, mutta tarkastaakseni saamieni tulosten oikeellisuus, pitäisi yhtälöön saada analyyttinen ratkaisu, jossa en ole onnistunut kovasta yrityksestä huolimatta. Olen lähestynyt ongelmaa lähtemällä ratkaisemaan seuraavan homogeenisen yhtälön ominaisarvoja:
y(t) - (a ab) y(t-1) (ab)(y(t-2)) = 0 => muodostetaan karakterinen yhtälö korvaamalla k^2 = y(t) =>
k^2 - (a ab)*k ab = 0
Tästä k asetetaan toisen asteen yhtälön ratkaisukaavaan saadaan diskriminantti
(ab a)^2 - 4ab
Tämä on kuitenkin eräillä alkuarvoilla a, b negatiivinen, joka johtaisi kompleksisiin arvoihin. Tämä taas ei sovi yhteen ohjelmoimalla saamieni ratkaisujen kanssa.
Pahoittelen epäselviä merkintöjä, mutta mikäli täältä löytyy joku joka osaisi ainakin antaa jotain vinkkiä, tulisi tarpeeseen.
Vastaukset 1
Vanhimmat
Vaikka siitä toisen asteen yhtälön ratkaisukaavasta tulisikin kompleksiarvoja, voi se itse ratkaisu silti olla reaalinen. Tuosta saadaan siis homogeeniratkaisuksi jotain muotoa y(t) = vakio * r^t, jossa r on juuri. Itse lähtisin tämän perusteella kokeilemaan, josko koko yhtälön ratkaisu voisi olla jotain muotoa
Y(t) = vakio * r^t vakio * t * r^t
En nyt jaksa sijoittaa tuota yhtälöön, mutta ainakin differentiaaliyhtälöillä tämäntyyppinen yrite joskus toimii.