|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2008
Città: PoggibonZi
Messaggi: 140
|
[MATLAB] Domanda generica..
Ciao, devo fare un sottoprogramma matlab che approssimi il valore dello zero di una funzione f con il metodo di bisezione, sottointeso che la f in ingresso rispetti le ipotesi del teorema in un certo intervallo in ingresso [a,b].
Il metodo è molto semplice e devo solo fare dei controlli che f(a)*f(x)<0 o f(b)*f(x)<0..... Il problema è che il mio prof mi ha contestato il progetto dicendo che in aritmetica finita, il controllo <0 non ha senso ed è meglio usare invece una certa quantità (tolleranza). Questo è il codice: Codice:
function [out,flag] = bisezione(f,a,b,bmax,btoll)
flag = 0;
n=0;
fa = f(a);
fb = f(b);
x = (a+b)/2; fx = f(x);
I=(b-a)/2;
while n <= bmax && flag == 0 && I >= btoll
n=n+1;
if fa*fx < -eps
b = x; fb = fx;
x = a +(b-a)/2;
fx = f(x);
I=(b-a)/2;
elseif fx*fb < -eps
a = x; fa = fx;
x = a +(b-a)/2;
fx = f(x);
I=(b-a)/2;
else
flag = 1;
end
end
out=x;
return
Grazie
__________________
Ho felicemente trattato con: Isomarcus, NLDomy, cipacci. Intel e2180 @ 3.1Ghz + Arctic Cooling Freezer 7 ~ MSI P35 Neo2-FR ~ Geil Black Dragon @ 970Mhz 4-4-4-12 ~ ASUS 8800GT 512Mb ~ OCZ StealthXtream 500W |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2008
Città: PoggibonZi
Messaggi: 140
|
nessuno?
__________________
Ho felicemente trattato con: Isomarcus, NLDomy, cipacci. Intel e2180 @ 3.1Ghz + Arctic Cooling Freezer 7 ~ MSI P35 Neo2-FR ~ Geil Black Dragon @ 970Mhz 4-4-4-12 ~ ASUS 8800GT 512Mb ~ OCZ StealthXtream 500W |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:01.



















