Risoluzione equazioni non lineari a 2 incognite

Messaggioda ventidue22 » 15/05/2018, 18:15

Buonasera,

sono di fronte alla risoluzione di due equazioni non lineari in due incognite x ed y, di cui riporto nel seguito le espressioni.
[img]

Immagine
[/img]

Ho provato la metodologia proposta da mathworks ( link https://it.mathworks.com/help/optim/ug/ ... #butbmfz-6 ) ma senza risultato.
Qualcuno ha qualche consiglio da fornirmi?

L'immagine allegata di seguito rappresenta, per ogni riga, i valori di input delle costanti: in particolare la prima, la seconda e la quinta colonna rappresentano i valori da assegnare a eta1, eta2 e delta. La terza e la quarta sono i valori di primo tentativo da assegnare a x e y. Il valore di gamma e di tau k è rispettivamente pari a 18 e 120.
[img]

Immagine
[/img]

Vi ringrazio anticipatamente per eventuali suggerimenti.
ventidue22
Starting Member
Starting Member
 
Messaggio: 1 di 2
Iscritto il: 03/05/2018, 16:56

Re: Risoluzione equazioni non lineari a 2 incognite

Messaggioda axpgn » 15/05/2018, 18:50

Non mi intendo di analisi numerica e ricerca operativa quindi il mio commento è puramente algebrico e prendilo per quello che vale ... :D

Se poni uguale a $z$ tutta l'espressione che moltiplica sia $x$ che la $y$ ottieni $eta_1=zx$ e $eta_2=zy$ da cui $x=eta_1/z$ e $y=eta_2/z$ che sommate membro a membro danno $x+y=(eta_1+eta_2)/z$.
Ora sostituendo $x+y=alpha$, ti rimane una sola equazione con una sola incognita.

IMHO

Cordialmente, Alex
axpgn
Cannot live without
Cannot live without
 
Messaggio: 11119 di 40654
Iscritto il: 20/11/2013, 22:03

Re: Risoluzione equazioni non lineari a 2 incognite

Messaggioda feddy » 15/05/2018, 18:53

Benvenuto sul forum, solo un paio di cose. Ora non ho tempo per scrivere in MatLab.

La prima, banale: hai provato a vedere se $F(\vec{x})=\vec{0}$? Cioè hai provato a vedere se l'output soddisfa effettivamente l'equazione?

Seconda cosa: hai postato i valori delle costanti, ma devi scegliere una riga particolare immagino. Nell'ipotesi che tutti i termini tranne $x,y$ sono costanti, allora:

- potresti usare il metodo di Newton per la risoluzione del sistema non lineare $F(x)=0$. Questo è facile da implementare, a patto che tu ti prenda la briga di calcolarti la matrice jacobiana, che già in questo caso potrebbe essere noiosa. Alternativamente, potresti usare un'approssimazione dello jacobiano con differenze finite, cosa un po' delicata.

- ti fidi di MatLab ( cosa che odio :roll: ) e segui la sintassi della documentazione. Non avendo visto il tuo codice, io farei così:

Codice:
%definizione parametri. parametro = <valore>

%eta1= ; eta2= ;
gamma=18; tauk=120;
%delta=;


F=@(x) [eta1 - ...; eta2 - ... ]; % x=x(1), y=x(2)
x0= [1;1]; %guess iniziale;

x=fsolve(F,x0)
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 1848 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: mired91 e 1 ospite