# Per i sistemi lineari posso semplicemente fare (vedi)
source("http://macosa.dima.unige.it/r.R")
# consideriamo i tre sisitemi rappresentati graficamente
S <- c(1,-1,-3, 3,-1,1); sistema(S)
# 2 5
S <- c(1,-1,-3, 1,-1,1); sistema(S)
# "non un'unica soluzione"
S <- c(1,-1,1, 5,-5,5); sistema(S)
# il sistema č numericamente singolare
#
# graficamente (essendo solo 2 le variabili) posso fare:
f <- function(x,y) x-y+3; g <- function(x,y) 3*x-y-1
noBox=1; boX(-1,6, -1,9)
# Uso  cur  invece di  curva  per grafici pių sottili
cur(f,"blue");cur(g,"red")
 
#
# Graficamente posso capire quante sono le soluzioni e con
# degli zoom trovare le soluzioni con precisioni via via migliori
# Con tecniche algebriche posso spesso trovare le soluz. esatte
#
# Soluzione di  x+y = 5 & x*y = 6 
f <- function(x,y) x+y-5; g <- function(x,y) x*y-6
box(-5,5,-5,5); cur(f,"blue");cur(g,"red")
box(1.5,3.5,1.5,3.5); cur(f,"blue");cur(g,"red")
#
# Soluzione di  x^2+y^2 = 10 & x+y = 4 
f <- function(x,y) x^2+y^2-10; g <- function(x,y) x+y-4
box(-5,5,-5,5); cur(f,"blue");cur(g,"red")
box(1,3,1,3); cur(f,"blue");cur(g,"red")
#
# Soluzione di  1/x+1/y = 5/6 & x*y = 6 
f <- function(x,y) 1/x+1/y-5/6; g <- function(x,y) x*y-6
box(-5,5,-5,5); cur(f,"blue");cur(g,"red")
box(2,3,2,3); cur(f,"blue");cur(g,"red")
F <- function(x) 1/(5/6-1/x); G <- function(x) 6/x
x <- soluz2(F,G,1.9,2.1); F(x)
#  2  3
x <- soluz2(F,G,2.9,3.1); F(x)
#  3  2


# Per un es. più strano (del tipo di quelli che si trovano in alcuni libri di testo)
f <- function(x,y) sqrt(x+y)+sqrt(2*x+4*y)-sqrt(2)-4
g <- function(x,y) sqrt(x+2*y)-sqrt(2*x+2*y)-2*sqrt(2)+2
box(-10,10,-10,10); cur(f,"blue");cur(g,"red")
box(-20,0,0,20); cur(f,"blue");cur(g,"red")
box(-5,-3,5,7); cur(f,"blue");cur(g,"red")
f(-4,6); g(-4,6)
#  0  0   OK