cosx
cosx
Si calcoli il punto fisso della funzione f(x)=cos(αx)
Si parta dal file ch7_fpi1.m
, che contiene:
function x_f = ch7_fpi1(x0)
Il file contiene poi una serie di sotto-funzioni
cosx
Nel nostro caso, tra le sotto-funzioni abbiamo:
Una funzione per visualizzare la posizione del punto fisso
function plot_function()
Una funzione per visualizzare l'andamento di |x(k+1)−x(k)|
function plot_distance(d_h)
d_h
è un vettore con i valori (assoluti) della distanzaUna funzione per calcolare cos(αx)
function z = f(x)
cosx
Per risolvere l'esercizio, dobbiamo codificare la funzione:
function [x_f, d_h] = fpi(x0, n = 1000, tol = 1e-6)
Che restituisce:
x_f
, che indica il risultato di IPFd_h
, con il valore di |x(k+1)−x(k)|
ad ogni iterazioneLa funzione ha come parametri:
x0
n
tol
cosx
In particolare, si codifichi la funzione:
function [e_h, x_f] = fpi(x0, n = 1000, tol = 1e-6)
Che restituisce:
e_h
, con il valore assoluto dell'errore ad ogni iterazionex_f
, che indica il risultato di IPFPer n
e tol
è indicato un valore di default
n
o tol
non sono specificati al momento della chiamata...cosx
Si osservi come si comporta IPF per vari valori di α
In particolare, si provi con:
x0=0
α=0.5,1,1.1,1.3,1.4,2,3,3.5
Qualche domanda interessante:
Una possibile soluzione:
function [x_f, d_h] = fpi(x0, n = 1000, tol = 1e-6)
x_f = x0;
d_h = [];
for k = 1:n
x_old = x_f;
x_f = f(x_f);
d_h(k) = abs(x_f - x_old);
if d_h(k) < tol
break
end
end
end
Al crescere di α
:
α<3
c'è un solo punto fissoα>∼1.3
IPF assume comportamento periodicoα=3
la funziona acquista un nuovo punto fisso...Si utilizzi IPF per risolvere l'equazione non lineare:
12x+1=21+e−2x
Si parta dal file ch7_fpi2.m
. In particolare:
function [x_f, d_h] = fpi(x0, n = 1000, tol = 1e-6)
x=f(x)
Si osservi il comportamento di IPF:
x0
f(x)
?L'equazione ha tre punti fissi (in ∼−1.915,0,∼1.915
)
Una possibile soluzione:
function [x_f, d_h] = fpi(x0, n = 1000, tol = 1e-6)
x_f = x0;
d_h = [];
for k = 1:n
x_old = x_f;
x_f = f(x_f); % <-- UNICA VARIAZIONE
d_h(k) = abs(x_f - x_old);
if d_h(k) < tol
break
end
end
end
Una prima forma possibile per f(x)
:
f(x)=2(21+e−2x−1)
Codice:
function z = f(x)
z = 2.*(2 ./ (1 + e.^(-2.*x)) - 1);
end
∼±1.915
sono stabili0
è instabileUna seconda forma possibile per f(x)
:
f(x)=−12ln(21/2x+1−1)
Codice:
function z = f(x)
z = -(1/2).*log((2 ./ (0.5 .* x + 1)) - 1);
end
∼±1.915
sono instabili0
è stabileDal corso di Fluidodinamica, dovreste sapere che:
p=p0[1+(1−1γ)MRT0g(z0−z)]γγ−1
T=T0[1+(1−1γ)MRT0g(z0−z)]
Sappiamo che (senza indicare le unità di misura):
R=8.31g=9.81
Supponiamo di sapere che, per z0−z=−10
:
p0=1T0=295T=257.70p=0.65
Quanto vale γ
e quale è la massa M
del fluido?
Il problema richiede di risolvere un sistema non-lineare
Inizialmente, abbiamo:
f(γ,M)=0g(γ,M)=0
f(γ,M)=0M=h(γ)
M
in f(x)
ed usare IPFPurtroppo, ci sono casi in cui questa operazione non è possibile
Esiste una alternative semplice e più generale
Se riusciamo a portare il sistema nella forma:
γ=f(γ,M)M=g(γ,M)
...Possiamo ancora usare IPF!
x=f(x)
f:R2→R2
In altre parole: ci sono due "variabili di stato"
Risolvete il sistema, partendo dal file ch7_fpi4.m
In particolare:
[gm, M] = f(gm_0, M_0)
γ
ed M
Occorre ottenere una espressione per γ
e M
Una possibile formulazione:
γ=11−(T−T0)RM1g(z0−z)M=(pγ−1γp0−1)γγ−1RT01g(z0−z)
γ
è una buona idea partire da un valore >1
M
praticamente ogni valore è buonoγ=1.4573
, M=10.069
Si utilizzi IPF per risolvere l'equazione non lineare:
√x=x2−x+12
Si parta dal file ch7_fpi4.m
. In particolare:
function z = f(x)
fpi(x0, n, tol)
...x=f(x)
Si osservi il comportamento di IPF:
x0
f(x)
?L'equazione ha due punti fissi (in ∼0.14265,∼1.484
)
Una prima forma possibile per f(x)
:
f(x)=x2−√x+0.5
Codice:
function z = f(x)
z = x.^2 - sqrt(x) + 0.5;
end
x0<∼1.484
x0>∼1.484
Una seconda forma possibile per f(x)
:
f(x)=(x2−x+12)2
Codice:
function z = f(x)
z = (x.^2 - x + 0.5).^2
end
∼0.14265
per x0<∼1.484
x0>∼1.484
Una terza forma possibile per f(x)
:
f(x)=√√x+x−12
Codice:
function z = f(x)
z = sqrt(sqrt(x) + x - 0.5);
end
∼1.484
per qualunque x0
Osservazione utile:
|f′(x)|
sia più piccolo possibile