Sistema in excel

zwan9
qualcuno sa come risolvere un sistema a tre equazioni e tre incognite (lineare) con excel tramite metodi iterativi? grazie a chi mi saprà rispondere!
Zwan

Risposte
Nidhogg
Scusa ma che cosa intendi per metodi iterati: pivot, gauss, ecc. o altro?

Ciao, Ermanno.

zwan9
è proprio questo che non capisco :( son capace di trovare le soluzioni esatte, ma in questo caso dice che bsognerebbe applicare il teorema di banach-caccioppoli, partendo da un dato iniziale (ad esempio (0,0,0) o un altro a scelta)e iterando, fino ad arrivare al punto o, in questo caso, ai tre punti fissi corrispondenti alle tre soluzioni (attraverso quindi tre curve che tendono ai valori esatti).. onestamente non so da dove iniziare!

Nidhogg
Ma allora stai parlando di sistemi di equazioni differenziali..

Ciao, Ermanno.

GIOVANNI IL CHIMICO
Credo che tutto dipenda da come sono costruite queste equazioni, mi spiego se in ogni equazione compare al più due derivate ad esempio:
y1'=y2
y2'=y3;
y3'=y3+t
allora basta impostare un qualunque eulero o meglio runge kutta e ad ogni passo valutare prima y3, poi con quella y2 e infine y1...

zwan9
uhm..no..allora quel che ho trovato come spiegazione non c'entra.. il mio è un sistema di tre equazioni lineari in tre incognite semplice semplice:
0,5x + y + 0,2z = 1,5
x + 0,4y + 0,2z = 3
0,2x + 0,6y + z = -1
La richiesta è: risolvere il sistema di equazioni con metodi iterativi e confrontare con il risultato esatto.

GIOVANNI IL CHIMICO
Guarda che usare i sistemi iterativi per un sistema lineare così semplice non ha senso, tanto più che con excel non si riesce ad implementarli...
Ma tu cosa intendi per metodi iterativi? perchè secondo me non sai esattamente quello di cui hai bisogno

zwan9
non lo so! questo è quello che mi han dato da fare (dovrei portare l'elaborato ad un esame come esercizio supplementare) ma nella dispensa sono spiegati solo i comandi di excel (come eseguire il prodotto di matrici, come calcolare il determinante, ecc, tutte cose che posso trovare anche in un manuale di excel qualsiasi).. il prof non si trova e non posso neanche chiedergli spegazioni. Quello che vi ho postato è il testo che mi è stato dato, ma non capisco niente.. il mio non è un esame di calcolo numerico (dovrei passare matematica 2), pertanto mi mancano anche alcune basi teoriche solide che mi potrebbe dare un corso "a tema"..

GIOVANNI IL CHIMICO
Non so come aiutarti, per me è una consegna stupida

zwan9
hehe, grazie, mi consoli perchè ero io a sentirmi stupida in questo caso. ho sempre saputo che un sistema in cui il numero d incognite coincide con quello delle equazioni ha una sola soluzione, una per ogni variabile, quindi non mi sembrava logico iterare (che cosa poi?). mi domandavo perchè magari per qualcuno che studia matematica all'università questa richiesta poteva avere un significato, ma per me no!
grazie mille per il tempo dedicato!
Zwan

*marcellopedone

GIOVANNI IL CHIMICO
Ok però il metodo di gauss è un metodo diretto e non iterativo, anche se implementato su calcolatore.
Guarda zwan io ho appena dato l'esame di calcolo numerico e ti posso assicurare che il fatto di avere una sola soluzione non impone che i metodi siano diretti, ossia esistono metodi iterativi che partendo da un vettore di valori iniziali calcolano il vettore soluzione, sono molto complicati e hanno dei criteri di convergenza alla soluzione molto stretti, ma si usano solo per sistemi di grandi dimensioni ed elevata sparsità...

Marco831
Visto il sistema, che non è di equazioni differenziali, e dato che Zwan parla di teorema di Banach-Cacciopoli o teorema delle contrazioni(questo teorema garantisce che, preso uno spazio dotato di una metrica completa su tale spazio, e data un'applicazione che risulti una contrazione rispetto alla metrica adottata, allora l'applicazione ammette uno e un solo punto fisso) credo che lo scopo sia utilizzare un metodo iterativo di punto fisso.
Per quanto riguarda la banalità dell'esempio credo sia legata al fatto che è un esempio introduttivo ai metodi iterativi, pertanto sarebbe fuoriluogo (benchè più semplice) risolverlo con un metodo algebrico classico.
Per quanto ne so, Excel non è sviluppato per questo tipo di problemi (ma magari mi sbaglio). io ti consiglio vivamente di usare Matlab.
Una spiegazione soddisfacente del metodo di punto fisso la trovi in "Introduzione al calcolo scientifico" di Quarteroni, Sacco, Saleri editore Springer

GIOVANNI IL CHIMICO
Confermo, non puoi risolverlo in excel, devi usare matlab

tony19
quote:
qualcuno sa come risolvere un sistema a tre equazioni e tre incognite (lineare) con excel tramite metodi iterativi? [zwan9]


una volta si usava il "metodo di Seidel" (più propriamente "Gauss-Seidel") per sistemoni lineari un po' sparsi, con una diagonale principale di buona "forza".

dalle risposte che hai avuto si direbbe che è totalmente passato di moda;
sicuramente, tra i lettori molti "puristi" disdegnano metodi che arrivano per approssimazioni succesive ad una soluzione che (teoricamente e con strumenti di adeguata potenza) si può ottenere in modo esatto;
ma ci sono anche dei "praticoni" che son contenti di poter fare il lavoro con macchine di costo più limitato.

quindi, cerca "seidel linear equations" e troverai parecchia documentazione.

il tuo primo passo è capire l'algoritmo; l'uso di excel ti verrà dopo (anche se, probabilmente è lo scopo principale del tuo esercizio * ).

ringrazia chi ti ha dato il problema di tre sole equazioni, ma digli che, una volta delineato l'algoritmo, tra tre o tremila non c'è differenza (a parte che 3 equazioni te le controlli facilmente, mentre con 3000 se vuoi controllare la soluzione devi farti risolvere il sistema da uno di quei "puristi", perchè con la tua macchina non ce la faresti, con o senza excel)

tony praticone

nota (*)
in excel puoi usare una macro, o sei costretta a lavorare solo sul foglione?

Marco831
x tony
Io nn sono un purista dei metodi iterativi, anche perchè sono spesso usati a sproposito (come dire, si usa un bazooka per uccidere una mosca), tuttavia nel terzo post (quello di Zwan) è spiegato chiaramente che la soluzione dovrebbe essere trovata ricercando i tre punti fissi legati alle iterate delle tre equazioni.
L'unico procedimento che utilizza questo metodo è l'iterazione di punto fisso (ad esempio il metodo di Newton è un caso particolare di iterazione di punto fisso)che in genere è utilizzata per trovare zeri di funzioni non lineari.
Tra l'altro per un sistemino così (dato che è un sistema lineare) dovrebbe arrivare a convergenza entro 6 o 7 iterazioni.

zwan9
marco83, cos'è il metodo di newton?

Marco831
Il metodo di Newton è un metodo per individuare gli zeri di una funzione (in generale si usa per funzioni non lineari con derivate "abbastanza buone" e poi vedremo cosa significa).
Supponiamo di avere una funzione f derivabile.
Si prenda un punto generico x0 e si scriva l'equazione della retta tangente a f in x0:
y=f(x0)+f'(x0)*(x-x0)
Tale retta intersecherà l'asse delle ascisse in un punto x1 (x1 si trova ponendo y=0);
Ripetendo il procedimento a partire da x1 otterremo un punto x2 e così via..
In generale il metodo di Newton è fatto così:
x_(k+1)=x_k-f(x_k)/f'(x_k) e dato iniziale x_0 (gli (0,0,0) che tu indicavi nel tuo post)
Questo metodo funziona sotto opportune condizioni, cioè:
f'(x_k) diversa da 0 (per un'approcccio numerico valido è bene che sia nettamente diversa da zero, altrimenti l'intersezione x_(k+1) si troverà a grande distanza da x_k);
x_0 scelto abbastanza vicino allo zero di f (anche se sembra una contraddizione in quanto non si conosce lo zero di f, è sufficiente fare un polt della funzione per rendersi conto di dove questo si trovi approssimativamente);
Per arrestare il metodo puoi semplicemente porre la condizione di arresto se (x_k-x_(k+1)) Un altro metodo di arresto è (f(x_k)) Il meglio si ottiene richiedendo che entrambe le soluzioni siano soddisfatte contemporaneamente.
Si possono fare delle stime di convergenza e delle correzioni del metodo al fine di farlo convergere sempre con ordine 2, anche al variare della molteplicità dello zero, ma non mi sembra il caso di approfondire...
Per quanto riguarda il sistema da te dato, sicuramente le condizioni richieste sono soddisfatte per qualunque scelta di x_0.
Tuttavia, se ti interessano metodi per risolvere efficientemente sistemi lineari, questo non è certo il migliore, in quanto non è pensato per i sistemi. Sicuramente più efficaci sono i metodi di Gauss-Seidel e i metodi di Richardson.
Onestamente non so come si possa implementare un metodo iterativo di punto fisso (come ad esempio il metodo di Newton) per la risoluzione di un sistema; se mi viene in mente qualcosa ti faccio sapere.

Marco831
Un'idea di come usare un metodo di punto fisso per un sistema mi è venuta, tuttavia ha senso solo se il sistema di equazioni è non lineare, in quanto si potrebbe usare newton su ogni singola equazione, riducendo il sistema ad un sistema lineare, risolvere questo nuovo sistema con un classico metodo x sistemi lineari(tipo fattorizzazione LU, Gauss-Seidel o Richardson) e a partire dal risultato, reimplementare un altro passo di Newton e così via, ma se il sistema è lineare, appena lancio un metodo come quelli sopraelencati, arrivo alla soluzione e non ha più senso parlare di iterazione di punto fisso.
effettivamente le richieste che ti hanno fatto sembrano un po insensate..
Prova a postare il testo completo dell'esercizio

tony19
zwan9,
quasi niente so di excel, e poco ho capito del tuo problema;
mi rifaccio ancora alla tua definizione iniziale
quote:
qualcuno sa come risolvere un sistema a tre equazioni e tre incognite (lineare) con excel tramite metodi iterativi?[zwan9]


appannata dai molti interventi
(ne’ hai contribuito a chiarirmi le idee rispondendo all’unica domanda che ti avevo fatto:
quote:
in excel puoi usare una macro, o sei costretta a lavorare solo sul foglione? [tony]

)
per cui chiudo il mio tentativo con le seguenti considerazioni:

se in excel non puoi scrivere una macro, ma ti devi accontentare del foglione, allora è inutile che tu ti impratichisca anche superficialmente con la tecnica e gli algoritmi del metodo di Seidel:
infischiatene e lascia fare tutto al solver di excel buttando giù il seguente foglione:
   A    B    C      D     E                    F
1  1    0,4  0,2    3     =a5*a1+b5*b1+c5*c1   =E1-D1
2  0,5  1    0,2    1,5   =a5*a2+b5*b2+c5*c2   =E2-D2
3  0,2  0,6  1     -1     =a5*a3+b5*b3+c5*c3   =E3-D3
4                                              =ABS(F1)+ABS(F2)+ABS(F3)
5  0    0    0  <======= questi sono i valori iniziali delle incognite
                         e qui si troveranno anche i risultati

(in A1:C3 i coefficienti, nella col. D i termini noti, nella col. E idem, ricalcolati, nella col. F gli errori con somma in F4)
e impostando il “solver” per calcolare le celle A5:C5 in modo da minimizzare la cella F4:

tools / solver / target cell = F4, MIN, by changing cells A5:C5

otterrai x=3,268, y=0,223, z=-1,787, come mi pare ci si debba aspettare.

se vuoi anche seguire il progresso delle poche iterazioni necessarie, non hai che da accendere la casella “show iteration results” nella finestra “options” del solver.

ripeto: io di excel non so quasi nulla, per cui non ti so dire quale tecnica usi il suo solver per l’approssimazione richiesta, (Seidel, Bertoldo, i punti fissi, e tutto il vario e fumoso bla bla bla teorico)
nè, in fondo mi pare che questa sia una richiesta del tuo problema iniziale.

tony

zwan9
grazie a tutti, scusate il ritardo ma ero senza computer fino a stamattina e non potevo rispondere. tony, anch'io non so molto di excel e non so cosa siano le macro.. comunque mi hai dato una dritta, provo a risolvere come mi hai consigliato e per il resto andrò a tentativi, sperando di avere l'"illuminazione" e risolvere il tutto. cercando su internet ho trovato diversi metodi di calcolo numerico, ma richiedono una preparazione matematica che io non ho e non penso sia richiesta per l'esame che devo sostenere.
grazie ancora!
zwan

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.