Здравейте, много ще съм благодарна ако някой може да ми помогне с решението на тази задача по числени методи.
Благодаря предварително!
Гост написа:Здравейте, много ще съм благодарна ако някой може да ми помогне с решението на тази задача по числени методи.
Благодаря предварително!
import math
x,y=0,0
for i in range(19):
y = math.sqrt( x**2 -x +y + 1)/2
x = (- 4*x*y**2 +144 -6*y**2 +9*y)**(1/3)/(-3)
print(x,y)peyo написа:Гост написа:Здравейте, много ще съм благодарна ако някой може да ми помогне с решението на тази задача по числени методи.
Благодаря предварително!
Да решим задачата по начин който някои мисля ще нарекат метод на постоянните приближения за нелинейна система, а аз го наричам "метод на псевдослучайните приближения". И също така няма да пишем теоретично или математическо нещо. И вместо да се мъчим на матлаб ще използваме Python:
- Код: Избери целия код
import math
x,y=0,0
for i in range(19):
y = math.sqrt( x**2 -x +y + 1)/2
x = (- 4*x*y**2 +144 -6*y**2 +9*y)**(1/3)/(-3)
print(x,y)
-1.7592106959680252 0.5
-1.7981931135198963 1.2603603620370176
-1.803279152551353 1.3501899819161833
-1.8039069320376087 1.3606326503224393
-1.8039817529374262 1.3618571696229185
-1.8039905858406362 1.362001201127548
-1.8039916263590816 1.3620181552359927
-1.8039917488776969 1.3620201512430679
-1.8039917633026974 1.3620203862405635
-1.8039917650010278 1.362020413907886
-1.8039917652009805 1.3620204171652894
-1.8039917652245216 1.3620204175487989
-1.8039917652272932 1.3620204175939512
-1.8039917652276196 1.3620204175992672
-1.803991765227658 1.3620204175998933
-1.8039917652276625 1.3620204175999668
-1.8039917652276631 1.3620204175999755
-1.8039917652276631 1.3620204175999766
-1.8039917652276631 1.3620204175999766
Както виждаме с 18 итерации надвишихме точността на double 64 битово число.
Важната част от решението е отдясно да напъхаме израза под колкото по-голям корен успеем и с малко късмет ще имаме сходящ процес.
Регистрирани потребители: Google [Bot]