Está en la página 1de 18

BANCO DE CODIGOS PROBLEMAS 2-4

REGRESIN GRADO 1
function reg1(x,y)
disp('Polinomio de grado 1');
plot(x,y,'o')
hold on
[A]=polyfit(x,y,1);
[n,m]=size(x);
e=(x(2)-x(1));
t=x(1):e:x(m);
recta=A(1)*t + A(2);
hold on
plot(t,recta,'r')
hold off
fprintf('\n%s%f%s%f','y= ',A(1),'x +',A(2)); % esta automatizado el
%smbolo "+" para mostrar en forma de ecuacin, en caso %de que algn
%valor A(n) sea '-', hacer caso omiso al '+'.

REGRESIN GRADO 2
function reg2(x,y)
disp('Polinomio de grado 2');
plot(x,y,'o')
hold on
[A]=polyfit(x,y,2);
[n,m]=size(x);
e=(x(2)-x(1));%Ancho
t=x(1):e:x(m);
recta=A(1)*t.^2 + A(2)*t + A(3);
hold on
plot(t,recta,'r')
hold off
fprintf('\n%s%f%s%f%s%f','y= ',A(1),'x^2 +',A(2), ' x + ',A(3));% esta
%automatizado el smbolo "+" para mostrar en forma de ecuacin, en caso
%de que algn valor A(n) sea '-', hacer caso omiso al '+'.

REGRESIN GRADO 3
function reg3(x,y)
disp('Polinomio de grado 3');
plot(x,y,'o')
hold on
[A]=polyfit(x,y,3);
[n,m]=size(x);
e=(x(2)-x(1));
t=x(1):e:x(m);
recta=A(1)*t.^3 + A(2)*t.^2 + A(3)*t + A(4);
hold on
plot(t,recta,'r')
hold off
fprintf('\n%s%f%s%f%s%f%s%f','y= ',A(1),'x^3 +',A(2), ' x^2 + ',A(3),'x
+ ',A(4)); % esta automatizado el smbolo "+" para mostrar en forma de
%ecuacin, en caso de que algn valor A(n) sea '-', hacer caso omiso al
%'+'.

REGRESIN GRADO 4
function reg4(x,y)
disp('Polinomio de grado 4');
plot(x,y,'o')
hold on
[A]=polyfit(x,y,4);
[n,m]=size(x);
e=(x(2)-x(1));
t=x(1):e:x(m);
recta=A(1)*t.^4 + A(2)*t.^3 + A(3)*t.^2 + A(4)*t + A(5);
hold on
plot(t,recta,'r')
hold off
fprintf('\n%s%f%s%f%s%f%s%f%s%f','y= ',A(1),'x^4 +',A(2), ' x^3 +
',A(3),'x^2 + ',A(4),' x + ',A(5)); % esta automatizado el smbolo "+"
%para mostrar en forma de ecuacin, en caso de que algn valor A(n) sea
%'-', hacer caso omiso al '+'.

REGRESIN EXPONENCIAL
function regexponencial(x,y)
plot(x,y,'o')
hold on
m=length(x);
xprom=x./m;
sxprom=sum(xprom);
yprom=(log(y)./m);
syprom=sum(yprom);
xlny=(x.*log(y));
sxlny=sum(xlny);
x2=(x.^2);
sx2=sum(x2);
b=(sxlny-(syprom*sum(x)))/(sx2-(sxprom*sum(x)));
e=(syprom)-(b*sxprom);
a=exp(e);
a
b
recta=a.*exp(b.*x);
plot(x,recta,'r');
fprintf('\n%s%f%s%f%s','y= ',a,'e^',b,'x'); %Mostrar ecuacin

El valor de b se obtiene mediante:

El valor de a sale despejando de:

a= (y (bx))
Teora obtenida de es.Wikipedia.org

PROBLEMA 2, SUBPLOT 4 GRFICAS


function reg(x,y)
%disp('Polinomio de grado 1');
[A]=polyfit(x,y,1);
[n,m]=size(x);
e=(x(2)-x(1));
t=x(1):e:x(m);
recta=A(1)*t + A(2);
plot(t,recta,'r')
fprintf('\n%s%f%s%f','y= ',A(1),'x +',A(2));
% esta automatizado el %smbolo "+" para mostrar en forma de ecuacin,
en
% caso %de que algn %valor A(n) sea '-', hacer caso omiso al '+'.
%disp('Polinomio de grado 2');
[B]=polyfit(x,y,2);
[n,m]=size(x);
e=(x(2)-x(1));%Ancho
t=x(1):e:x(m);
recta2=B(1)*t.^2 + B(2)*t + B(3);
fprintf('\n%s%f%s%f%s%f','y= ',B(1),'x^2 +',B(2), ' x + ',B(3));% esta
automatizado el simbolo "+" para mostrar
%en forma de ecuacion, en caso de que algun valor A(n) sea '-', hacer
caso
%omiso al '+'.
%disp('Polinomio de grado 3');
[C]=polyfit(x,y,3);
[n,m]=size(x);
e=(x(2)-x(1));
t=x(1):e:x(m);
recta3=C(1)*t.^3 + C(2)*t.^2 + C(3)*t + C(4);
fprintf('\n%s%f%s%f%s%f%s%f','y= ',C(1),'x^3 +',C(2), ' x^2 + ',C(3),'x
+ ',C(4));
%disp('Polinomio de grado 4');
[D]=polyfit(x,y,4);
[n,m]=size(x);
e=(x(2)-x(1));
t=x(1):e:x(m);
recta4=D(1)*t.^4 + D(2)*t.^3 + D(3)*t.^2 + D(4)*t + D(5);
fprintf('\n%s%f%s%f%s%f%s%f%s%f','y= ',D(1),'x^4 +',D(2), ' x^3 +
',D(3),'x^2 + ',D(4),' x + ',D(5));

subplot(2,2,1)
plot(x,y,'o',x,recta)
subplot(2,2,2)
plot(x,y,'o',x,recta2)
subplot(2,2,3)
plot(x,y,'o',x,recta3)
subplot(2,2,4)
plot(x,y,'o',x,recta4)

PROBLEMA 2
Calor especfico del agua. Se toman valores experimentales del calor especfico
del agua como una funcin de la temperatura, lo cual nos queda:

T (K)
273
283
293
303
313
323
333
343
353
363
373

Cp cal/(g K)
1.00738
1.00129
0.99883
0.99802
0.99804
0.99854
0.99943
1.00067
1.00229
1.00437
1.00697

De la tabla obtenemos nuestros vectores:


>> x= [273 283 293 303 313 323 333 343 353 363 373];
>> y= [1.00738 1.00129 0.99883 0.99802 0.99804 0.99854 0.99943 1.00067
1.00229 1.00437 1.00697];
Determina la mejor ecuacin de ajuste al ensayar polinomios de grado 1, 2, 3,4.
(Se tienen que incluir las cuatro grficas, en donde cada una tiene los puntos
anteriores y la aproximacin).

Aplicando regresin, para polinomio de 1er grado obtenemos:


>> reg1(x,y)
Polinomio de grado 1
y= 0.000025x + 0.993411>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando regresin, para polinomio de 2do grado obtenemos:


>> reg2(x,y)
Polinomio de grado 2
y= 0.000003x^2 - 0.002184x + 1.346657>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando regresin, para polinomio de 3er grado obtenemos:


>> reg3(x,y)
Polinomio de grado 3
y= - 0.000000x^3 + 0.000039x^2 - 0.013507x + 2.551849>>
>> format long
>> polyfit(x,y,4)
ans =
-0.000000036385004 0.000038675716783 -0.013506859978634 2.551848935425616

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando regresin, para polinomio de 3er grado obtenemos:


>> reg4(x,y)
Polinomio de grado 4
y= 0.000000x^4 - 0.000001 x^3 + 0.000545x^2 - 0.121578 x + 11.173370>>
>> format long
>> polyfit(x,y,4)
Columns 1 through 4
0.000000000811480 -0.000001084817405 0.000544612514566 -0.121578223433815
Column 5
11.173369654695643

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando subplot; tenemos:

PROBLEMA 3
Regresin Exponencial. En determinados experimentos, en su mayora biolgicos,
la dependencia entre las variables X e Y es de forma exponencial, en cuyo caso
interesa ajustar a la nube de puntos una funcin del tipo:

Mediante una transformacin lineal, tomando logaritmos neperianos, se convierte


el problema en una cuestin de regresin lineal. Es decir, tomando logaritmos
neperianos:

Ahora bien, queremos encontrar un modelo de prediccin para el siguiente


conjunto de puntos:
x
1
1.2
1.5
2
3
3.7
4
4.5

y
3
3.4
5
2
4.1
5
7
6.5

Aplicando regresin exponencial, obtenemos:


>> x= [1 1.2 1.5 2 3 3.7 4 4.5];
>> y= [3 3.4 5 2 4.1 5 7 6.5];
>> regexponencial(x,y)
a=
2.3832
b=
0.2160
y= 2.383239e^0.216049x>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

PROBLEMA 4
Con los datos:
x
4
4.2
4.5
4.7
5.1
5.5
5.9
6.3
6.8
7.1

y
102.56
113.18
130.11
142.05
167.53
195.14
224.87
256.73
299.5
326.72

a) Construya polinomios de mnimos cuadrados de grado 1, 2, 3.


b) Construya la aproximacin de la forma beax (exponencial).
Decir cual se aproxima mejor.

Vectores utilizados:
>> x= [4 4.2 4.5 4.7 5.1 5.5 5.9 6.3 6.8 7.1];
>>y= [102.56 113.18 130.11 142.05 167.53 195.14 224.87 256.73 299.50 326.72];

Aplicando regresin, para polinomio de 1er grado obtenemos:


>> reg1(x,y)
Polinomio de grado 1
y= 72.084518x - 194.138241>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando regresin, para polinomio de 2do grado obtenemos:


>> reg2(x,y)
Polinomio de grado 2
y= 6.618211x^2 - 1.143523 x + 1.235560>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando regresin, para polinomio de 3er grado obtenemos:


>> reg3(x,y)
Polinomio de grado 3
y= - 0.013675x^3 + 6.845578 x^2 - 2.379221x + 3.429094>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Aplicando regresin exponencial, obtenemos:


>> regexponencial(x,y)
a=
24.2588
b=
0.3724
y= 24.258760e^0.372382x>>

Los puntos azules se rigen por la tabla, y la lnea roja indica la aproximacin.

Por sentido comn, sabemos que conforme el grado del polinomio aumenta,
es ms prximo al resultado real; adems sabemos que ( 2,71828); por
lgica la proximidad de los polinomios quedar de la siguiente manera:
1.
2.
3.
4.

Grado 3.
Grado e.
Grado 2.
Grado 1.

Esto lo comprobamos sustituyendo cualquier valor de x en las 4 ecuaciones


obtenidas
y (5.5)=195.14

Por lo tanto se aproxima mejor el polinomio de grado 3.

También podría gustarte