VBA

10
Practica 2 VBA 'Se propone como problema generar una matriz de MxN tal que al momento de descomponerla' 'su seccion triangular superior sea igual para cada casilla al valor i*j' 'su seccion triangular inferior igual a i+j' 'su diagonal sea igual a 0' Public Sub matriz! "im N# M# i# j $s %nteger "im matriz $s "ouble M & %nputox(Numer o de )las para la matriz(! N & %nputox(numero de columnas para la matriz(! or i & ,o M or j & ,o N %f j - i! ,.en /ellsi# j! & i * j lse%f j 1 i! ,.en /ellsi# j! & i + j lse%f j & i ,.en /ellsi# j! & 0 nd %f Next j Next i nd Sub Practica 3 Modulo 1 'P234M$ 5a' 'isecc6on' Public unction g,! $s "ouble g & 758 + 05098 * , * l,!! : 05797;9<;< * , nd unction Public unction l,! $s "ouble l & 4og,! = 4og0>! nd unction 'punto )jo' Public unction z,! $s "ouble z & 758 + 05098 * , * 4og,! = 4og0>!! : 0579?9 * , + , nd unction 'Ne@ton:2ap.son' Public unction derAg,! $s "ouble . & 0500000000000 derAg & g, + .! : g,!! = . nd unction Modulo 2 'P234M$ 5 MN2MB' Public /onst 2 $ s "ouble & 5?<9709 'cal=mol*C Public /onst Ps $s "ouble & 0500 DE 'atm Public /onst Pl $s "ouble & 05DE 'atm Public /onst , s $s "ouble & D5<E 'C Public /onst ,l $s "ouble & D<?5;E 'C Public /onst Fs $s "ouble & 8E8578DD 'cal=mol Public /onst Fv $s "ouble & 0998578DD 'cal=mol Public unction triplePt# ,t! $s "ouble triple & 4ogPt = Ps! : Fs = 2! * = ,s! : = ,t!!! nd unction Public unction triple7Pt# ,t! $s "ouble triple7 & 4ogPt = Pl! : Fv = 2! * = ,l! : = ,t!!! nd unction Public un ction derAtriplePtPt# ,t! $s "ouble Practica 3 Problema 1a Pto fjo Private Sub /ommanduttonA/lic G! /ellsE# E! & %nputox(Balor %nicial(! /ells# ! & %nputox(,olerancia(! iter & %nputox(Numero de %teraciones(! or i & ,o iter /ellsE# ;! & z/ellsE# E!! /ellsE + i# E! & /ells8 + i# ;! /ellsE + i# ;! & z/ellsE + i# E!! /ellsE + i# 9! & $bs/ells E + i# E! : /ells8 + i# E!! = /ells8 + i# E!!  %f /ellsE + i# 9! 1 /ells# ! ,.en  /ellsE + i# <! & (3C(  lse  /ellsE + i# <! & (S%H$(  nd %f  Next i nd Sub Problema 1b NRP Private Sub /ommanduttonA/licG ! /ells9# ;! & %nputox(Balor %nicial(! /ells# ! & %nputox(,olerancia(! iter & %nputox(NImero de %teraciones(! or i & ,o iter /ells9 + i# ;! & /ells; + i# ;! : g/ells; + i# ;!! = derAg/ells; + i# ;!!! /ells9 + i# 9! & $bs/ells9 + i# ;! : /ells; + i# ;!! = /ells; + i# ;!!  %f /ells9 + i# 9! 1 /ells# ! ,.en  /ells9 + i# <! & (3C(  lse  /ells9 + i# <! & (S%H$(  nd %f Next i nd Sub Modulo 3 'P234M$ 5 MPMB' Public /onst 2 $ s " ouble & 5?<9709 'cal=mol*C Public /onst Ps $s "ouble & 0500 DE 'atm Public /onst Pl $s "ouble & 05DE 'atm Public /onst , s $s "ouble & D5<E 'C Public /onst ,l $s "ouble & D<?5;E 'C Public /onst Fs $s "ouble & 8E8578DD 'cal=mol Public /onst Fv $s "ouble & 0998578DD 'cal=mol Public unction puntoA)joPt# ,t! $s "ouble puntoA)jo & xpFv = 2! * = ,l! : = ,t!!!! + Pl nd unction Public un ction puntoA)jo7Pt# ,t! $s "ouble puntoA)jo7 & = ,s! : 2 = Fs! * 4ogPt = Ps!!! J :! nd unction

description

aplicacion de sw a la ingenieria

Transcript of VBA

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 1/10

ractica 2

BA

e propone como problema generar una matriz de MxN tal que al momento de descomponerla'

u seccion triangular superior sea igual para cada casilla al valor i*j'u seccion triangular inferior igual a i+j'u diagonal sea igual a 0'ublic Sub matriz!im N# M# i# j $s %ntegerim matriz $s "ouble& %nputox(Numero de )las para la matriz(!

& %nputox(numero de columnas para la matriz(!or i & ,o Mor j & ,o Nj - i! ,.enellsi# j! & i * jse%f j 1 i! ,.enellsi# j! & i + jse%f j & i ,.enellsi# j! & 0nd %f ext jext ind Sub

ractica 3Modulo 1

234M$ 5a'isecc6on'

ublic unction g,! $s "ouble& 758 + 05098 * , * l,!! : 05797;9<;< * ,nd unctionublic unction l,! $s "ouble& 4og,! = 4og0>!nd unctionunto )jo'ublic unction z,! $s "ouble

& 758 + 05098 * , * 4og,! = 4og0>!! : 0579?9 * , + ,nd unction

Ne@ton:2ap.son'ublic unction derAg,! $s "ouble& 0500000000000erAg & g, + .! : g,!! = .nd unction

Modulo 2234M$ 5 MN2MB'ublic /onst 2 $s "ouble & 5?<9709 'cal=mol*C ublic /onst Ps $s "ouble & 0500DE 'atmublic /onst Pl $s "ouble & 05DE 'atmublic /onst ,s $s "ouble & D5<E 'C ublic /onst ,l $s "ouble & D<?5;E 'C ublic /onst Fs $s "ouble & 8E8578DD 'cal=molublic /onst Fv $s "ouble & 0998578DD 'cal=mol

ublic unction triplePt# ,t! $s "oubleiple & 4ogPt = Ps! : Fs = 2! * = ,s! : = ,t!!!nd unction

ublic unction triple7Pt# ,t! $s "oubleiple7 & 4ogPt = Pl! : Fv = 2! * = ,l! : = ,t!!!nd unction

ublic unction derAtriplePtPt# ,t! $s "ouble

Practica 3Problema 1a Pto fjoPrivate Sub /ommanduttonA/licG!/ellsE# E! & %nputox(Balor %nicial(!/ells# ! & %nputox(,olerancia(!iter & %nputox(Numero de %teraciones(!or i & ,o iter/ellsE# ;! & z/ellsE# E!!/ellsE + i# E! & /ells8 + i# ;!/ellsE + i# ;! & z/ellsE + i# E!!/ellsE + i# 9! & $bs/ellsE + i# E! : /ells8+ i# E!! = /ells8 + i# E!! %f /ellsE + i# 9! 1 /ells# ! ,.en  /ellsE + i# <! & (3C(  lse  /ellsE + i# <! & (S%H$(  nd %f  Next ind Sub

Problema 1b NRPPrivate Sub /ommanduttonA/licG!/ells9# ;! & %nputox(Balor %nicial(!/ells# ! & %nputox(,olerancia(!iter & %nputox(NImero de %teraciones(!or i & ,o iter/ells9 + i# ;! & /ells; + i# ;! : g/ells; +i# ;!! = derAg/ells; + i# ;!!!/ells9 + i# 9! & $bs/ells9 + i# ;! : /ells;+ i# ;!! = /ells; + i# ;!!

  %f /ells9 + i# 9! 1 /ells# ! ,.en  /ells9 + i# <! & (3C(  lse  /ells9 + i# <! & (S%H$(  nd %f Next ind Sub

Modulo 3'P234M$ 5 MPMB'Public /onst 2 $s "ouble & 5?<9709 'cal=mol*C Public /onst Ps $s "ouble & 0500DE 'atm

Public /onst Pl $s "ouble & 05DE 'atmPublic /onst ,s $s "ouble & D5<E 'C Public /onst ,l $s "ouble & D<?5;E 'C Public /onst Fs $s "ouble & 8E8578DD 'cal=molPublic /onst Fv $s "ouble & 0998578DD 'cal=molPublic unction puntoA)joPt# ,t! $s "oublepuntoA)jo & xpFv = 2! * = ,l! : = ,t!!!! + Plnd unction

Public unction puntoA)jo7Pt# ,t! $s "oublepuntoA)jo7 & = ,s! : 2 = Fs! * 4ogPt = Ps!!! J :!nd unction

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 2/10

erAtriplePt & = Ptnd unctionublic unction derAtriple,tPt# ,t! $s "oubleerAtriple,t & :Fs = 2! * = ,t J 7!!nd unctionublic unction derAtriple7PtPt# ,t! $s "oubleerAtriple7Pt & = Ptnd unctionublic unction derAtriple7,tPt# ,t! $s "oubleerAtriple7,t & :Fv = 2! * = ,t J 7!!nd unctionractica 4odbiseccionunction bisecciona $s "ouble# b $s "ouble# tol $s "ouble! $s "ouble"im Si $s "ouble# SiA $s "ouble

"im rror $s "ouble"im a $s "ouble# s $s "ouble# b $s "ouble"im G $s %nteger"im %Amax $s %nteger%Amax & E0SiA & b 'valor de SiA solo para la primera iteracion del cicloor G & ,o %Amax Step

Si & a + b! = 7a & cantbata!

s & cantbatSi!b & cantbatb!%f a * s! 1 0! ,.e

b & Silsea & Si

nd %frror & $bsSi : SiA! = SiA! * 00%f rror 1 tol! ,.en

biseccion & SiMsgox (iteraciones & ( K G : !xit unction

nd %f 

SiA & SiNext GMsgox (mLximo nImero de iteraciones(!

nd unctionodptofjounction cantbatApto)jot $s "ouble! $s "oubleantbatApto)jo & cantbatt! + tnd unction

unction dgAdtt $s "ouble! $s "ouble& 050000gAdt & cantbatApto)jot + .! : cantbatApto)jot!! = .nd unction

unction /riterioApto)jot0 $s "ouble! $s "oubleriterioApto)jo & $bsdgAdtt0!!/riterioApto)jo 1 ,.enMsgox (/3NB2H 4%N$4MN,(!

se%f /riterioApto)jo & 0 ,.enMsgox (/3NB2H /$"2$,%/$MN,(!

lseMsgox ("%B2H(!

nd %f nd unction

jemplos ciclos y condicionalesMP43S /%/43S O /3N"%/%3N$4S

CodNetonR!apsonunction dcantbatAdtt $s "ouble! $s "ouble. & 050000dcantbatAdt & cantbatt + .! : cantbatt!! = .nd unctionunction N2planillat $s "ouble! $s "oubleN2planilla & t : cantbatt! = dcantbatAdtt!nd unction

Public unction N2B$t0 $s "ouble# tol $s "ouble! $s"ouble"im ti $s "ouble# rror $s "ouble# tn $s "oubleti & t0rror & 7 * tol 'valor de error solo para inicial el ciclo @"o .ile rror - tol  tn & ti : cantbatti! = dcantbatAdtti!!  rror & $bstn : ti!  ti & tn4oopN2B$ & tnnd unction

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 3/10

ub sumaAnumerosAnaturales!im a $s %nteger ' "eclaramos que tipo de variable es a# es este caso al ser numeros naturales es un enteroim suma $s %nteger& 0 ' /argamos valor inicial de a

or i & ,o 00 Step 'iniciamos el ciclo for# en el cual el contador irL desde .asta 00 con un paso de uma & a + i 'Se de)ne en valor de suma que sera a+i& suma ' 2ecargamos el valor de a para que se reemplaze por en valor de sumaext isgox (la suma de los primeros 00 numeros naturales es ( K a!nd Sub

ub ejemplo7!im a $s %nteger ' "eclaramos que tipo de variable es a# es este caso al ser numeros naturales es un enteroim suma $s %nteger& 0& 0 ' aQadimos un contador G el cual determinara las veces que se realize el ciclo @.ileo .ile G 1 0uma & a + G& suma& G + ' se recarga el valor de G en cada iteracion aQadiendole una unidad al valor anterior de G

oopsgox (la suma de los primeros 00 numeros naturales es ( K a!nd Sub

ub ejemploD!im a $s "ouble& %nputox(%ngrese Numero a valuar(!a Mod 7 & 0 ,.enMsgox (l numero es Par(!

seMsgox (l numero es %mpar(!nd %f 

nd Sub

roblema 3"e)nimos las constantesonst pi & D58E?7;E8

onst gravedad & ?5< 'm=s7onst r.oARuido & 070 'Gg=mDonst r.oAmin & 8700 'Gg=mDonst muARuido & 05000E 'Gg=m=sonst radioAparticula & 050007 'm

ublic unction renoldsvelocidad $s "ouble! $s "oubleenolds & r.oARuido * radioAparticula * velocidad = muARuidond unction

ublic unction /dvelocidad $s "ouble! $s "ouble '/oe)ciente de $rrastred & 058 + 78 = renoldsvelocidad! + ; = + renoldsvelocidad! J 05E!!nd unction

ublic unction balanceAfuerzasvelocidad $s "ouble! $s "oublep & 8 * pi * radioAparticula J 7p & 8 = D * pi * radioAparticula J DalanceAfuerzas & Bp * r.oARuido * gravedad + 05E * /dvelocidad! * r.oARuido * $p * velocidad J 7 : r.oAmin ravedadnd unction

ublic unction dAbalanceAfuerzasvelocidad $s "ouble! $s "ouble& 0500000000AbalanceAfuerzas & balanceAfuerzasvelocidad + .! : balanceAfuerzasvelocidad!! = .nd unction

ublic unction funAobjvelocidad $s "ouble! $s "ouble

"uncion cant bat Public unction cantbatt $s "ouble! $s "oublecantbat & 7000 * xp:E * t! : 0 * tnd unction

NR problema 3Public unction N2APDAB$v0 $s "ouble# tol $s "oubl$s "ouble"im vi $s "ouble# rr $s "ouble# vn $s "oublevi & v0rr & 7 * tol 'valor de error solo para inicial el ciclo @."o .ile rr - tol  vn & vi : balanceAfuerzasvi! = dAbalanceAfuerzasvi!  rr & $bsvn : vi!  vi & vn4oop

N2APDAB$ & vnnd unction

Problema 2 planillaunction colebrooGf $s "ouble! $s "ouble

ed & 2ange(F0(!2e & /ells?# <!aux & f J :05EcolebrooG & aux + 7 * orGs.eetunction54og0ed = D+ 75E = 2e * aux!nd unction unction deriAcolebrooGf $s "ouble! $s "ouble. & 050000deriAcolebrooG & colebrooGf + .! : colebrooGf!! = .nd unction

unction N2colef $s "ouble! $s "oubleN2cole & f : colebrooGf! = deriAcolebrooGf!nd unction

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 4/10

ain & 000000>nAobj & balanceAfuerzasvelocidad! * gain! J 7

nd unction

ublic unction dAfunAobjvelocidad $s "ouble! $s "ouble& 0500000000AfunAobj & funAobjvelocidad + .! : funAobjvelocidad!! = .nd unction

yudantia 3 parte 2$ub HaussSiedel!"im tol $s "ouble# n $s %nteger# NAmax $s %ntegertol & 0 J :E 'tolerancian & D 'dimension del sistema nImero de ecuaciones!NAmax & 00 'nImero de iteraciones mLximas permitidas"im $ ,o D# ,o D! $s "ouble 'matriz

$# ! & 9 ' cargamos coe)cientes uno a uno en elementos de la matriz$# 7! & :7$# D! & :D

$7# ! & :E$7# 7! & 7

$7# D! & :7

$D# ! & :E$D# 7! & :E$D# D! & 77

"im b ,o D! $s "ouble 'vector b

b! & E00b7! & 700bD! & D0

"im xG ,o D! $s "ouble 'vector iteracion anterior xJG

xG! & ' cargamos set de primeros valoresxG7! & xGD! &

"im x ,o D! $s "ouble ' vector resultados iteracion actual xJG+"im G $s %nteger# i $s %nteger# j $s %nteger"im sum $s "ouble# sum7 $s "ouble# rror $s "oubleG &

"o .ile G 1 NAmaxor i & ,o n

sum & 0 ' sumatoria la de la izquierda!

sum7 & 0 ' sumatoria 7 la de la derec.a!%f i - ,.enor j & ,o i :

sum & sum + $i# j! * xj!Next j

lsesum & 0

nd %f %f n - i ,.en

or j & i + ,o nsum7 & sum7 + $i# j! * xGj!

Next jlse

sum7 & 0

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 5/10

nd %f xi! & = $i# i! * bi! : sum : sum7!Next i

rror & x! : xG!! J 7 + x7! : xG7!! J 7 + xD! : xGD!! J 7! J 05E 'cLlculo error de iteraciTn%f rror 1 tol! ,.en ' consulto condiciTn de detenciTn

2ange(370(! & x!2ange(37(! & x7!2ange(377(! & xD!2ange(37D(! & G

xit Subnd %f G & G + ' incremento contador de iteracionesor i & ,o n 'actualizo variables para la prTxima iteraciTn

xGi! & xi!Next i

4oopMsgox (superado maximas iteraciones(!

nd Sub

acobiub acobiii!"im tol $s "ouble# n $s %nteger# NAmax $s %nteger

tol & 0 J :E 'tolerancian & D 'dimension del sistema nImero de ecuaciones!NAmax & 00 'nImero de iteraciones mLximas permitidas

"im $ $s Bariant 'matriz $$ & 2ange(N8UP;(!5Balue ' cargamos coe)cientes desde la planilla

"im b $s Bariant 'vector bb & 2ange(28U2;(!5Balue

"im xG ,o D! $s "ouble 'vector iteracion anterior xJG

xG! & ' cargamos set de primeros valoresxG7! & xGD! &

"im x ,o D! $s "ouble ' vector resultados iteracion actual xJG+"im G $s %nteger# i $s %nteger# j $s %nteger"im sum $s "ouble# rror $s "ouble

G &

"o .ile G 1 NAmaxor i & ,o n

sum & 0 ' sumatoria

or j & ,o n%f j 1- i ,.ensum & sum + $i# j! * xGj!

nd %f Next j

xi! & = $i# i!! * bi# ! : sum!

Next irror & x! : xG!! J 7 + x7! : xG7!! J 7 + xD! : xGD!! J 7! J 05E 'cLlculo error de iteraciTn

%f rror 1 tol! ,.en ' consulto condiciTn de detenciTn

2ange(370(! & x!

2ange(37(! & x7!

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 6/10

2ange(377(! & xD!2ange(37D(! & G

xit Sub

nd %f 

G & G + ' incremento contador de iteraciones

or i & ,o n 'actualizo variables para la prTxima iteraciTnxGi! & xi!

Next i

4oopMsgox (superado maximas iteraciones(!

nd Sub

yudantía solver 

cuacion no lineal

ublic unction funcionx $s "ouble! $s "oublencion & 057 * x : /osx!

nd unction

ublic unction dAfuncionx $s "ouble! $s "oubleim . $s "ouble& 0500000Afuncion & funcionx + .! : funcionx!! = .nd unction

ublic unction N2Afuncionx0 $s "ouble!im tol $s "ouble# error $s "ouble

ol & 050000rror & 7 * tolim xi $s "ouble# xs $s "ouble& x0

o .ile error - tolxs & xi : funcionxi! = dAfuncionxi!error & $bsxs : xi!xi & xs

oop2Afuncion & xsnd unction

RMVublic /onst Pi & D58E?7unction sistemaAnrx $s "ouble# x7 $s "ouble# xD $s "ouble! $s Bariant

"im Vo ,o D# ,o ! $s "oubleVo# ! & D * x : /osx7 * xD! : = 7

Vo7# ! & x J 7 : < * x7 + 05! J 7 + SinxD + 50;!VoD# ! & xp:x * x7! + 70 * xD + 0 * Pi = D : sistemaAnr & Vo

nd unctionunction acobianaAnrx $s "ouble# x7 $s "ouble# xD $s "ouble! $s Bariant

"im ,o D# ,o D! $s "ouble# ! & D# 7! & xD * Sinx7 * xD!# D! & x7 * Sinx7 * xD!

 7# ! & 7 * x7# 7! & :;7 * x7 + 05!

7# D! & /osxD + 50;!

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 7/10

 D# ! & :x7 * xp:x * x7!D# 7! & :x * xpx * x7!D# D! & 70acobianaAnr &

nd unction

unction [email protected] $s "ouble# x7 $s "ouble# xD $s "ouble# NAiter $s %nteger! $s Bariant"im xn $s Bariant

"im i $s %ntegeror i & ,o NAiter Step

xn & orGs.eetunction5MMultorGs.eetunction5M%nverseacobianaAnrx# x7# xD!!# sistemaAnrx# x7# x & x : xn# !x7 & x7 : xn7# !xD & xD : xnD# !

Next i"im Vo ,o D! $s "oubleVo! & xVo7! & x7VoD! & [email protected] & Vo

nd unction

yundantia integracion

jemplo 1ublic /onst p.i & D58Eublic unction velocidadr $s "ouble! $s "oubleelocidad & E57 * : r = D0! J 05E * 7 * p.i * rnd unction

ublic unction ,rapecioa $s "ouble# b $s "ouble# n $s %nteger! $s "oubleim . $s "ouble. & b : a! = n

"im %ntegral $s "ouble%ntegral & 0

"im a $s "ouble# b $s "oubleor i & ,o n

a & a + i : ! * .b & a + i * .%ntegral & %ntegral + b : a! * velocidada! + velocidadb!! = 7

Next i,rapecio & %ntegralnd unction

unction SimpsonADa $s "ouble# b $s "ouble# n $s "ouble! $s "ouble"im . $s "ouble

. & b : a! = n"im %ntegral $s "ouble

%ntegral & 0

"im a $s "ouble# b $s "ouble# c $s "ouble"im i $s %ntegeror i & ,o n Step

a & a + i : ! * .b & a + i! * .

c & a + b! = 7 'punto medio del intervalo%ntegral & %ntegral + b : a! * velocidada! + 8 * velocidadc! + velocidadb!! = ;

Next iSimpsonAD & %ntegral

nd unction

unction SimpsonDA<a $s "ouble# b $s "ouble# n $s "ouble! $s "ouble

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 8/10

"im . $s "ouble. & b : a! = n

"im %ntegral $s "ouble%ntegral & 0"im a $s "ouble# b $s "ouble# c $s "ouble# c7 $s "ouble"im i $s %ntegeror i & ,o n Step

a & a + i : ! * .b & a + i! * .c & a + b : a! = D '=D intervaloc7 & a + 7 * b : a! = D '7=D intervalo

'recordar . & b:a!=D%ntegral & %ntegral + = <! * b : a! * velocidada! + D * velocidadc! + D * velocidadc7! + velocidad

Next iSimpsonDA< & %ntegral

nd unction

Modulo 1ublic unction /p, $s "ouble! $s "ouble

/p & :95E< + 9587 * 0 J :D * , : D5?<E * 0 J E! * , J :7nd unction

unction trapecioAe7a $s "ouble# b $s "ouble# n $s "ouble! ' Wa # bX & intervalo de integracion # n & sub:divici

el intervalo

im step $s "oublestep & b : a! = n"im %ntegral $s "ouble%ntegral & 0

"im a $s "ouble# b $s "ouble"im i $s %nteger

or i & ,o n Stepa & a + i : ! * stepb & a + i! * step%ntegral & %ntegral + b : a! * /pa! + /pb!! = 7

NexttrapecioAe7 & %ntegral

nd unction

unction SimpsonADAe7a $s "ouble# b $s "ouble# n $s "ouble! ' Wa # bX & intervalo de integracion # n & sub:viciones del intervalo"im step $s "oublestep & b : a! = n"im %ntegral $s "ouble%ntegral & 0"im a $s "ouble# b $s "ouble# c $s "ouble"im i $s %nteger

or i & ,o n Step a & a + i : ! * stepb & a + i! * stepc & a + b! = 7 'punto medio del intervalo

%ntegral & %ntegral + b : a! * /pa! + 8 * /pc! + /pb!! = ;Next iSimpsonADAe7 & %ntegral

nd unction

unction SimpsonDA<Ae7a $s "ouble# b $s "ouble# n $s "ouble! ' intervalo a # b n diviciones nc & indice de"im step $s "oublestep & b : a! = n"im %ntegral $s "ouble

%ntegral & 0"im a $s "ouble# b $s "ouble# c $s "ouble# c7 $s "ouble"im i $s %nteger

or i & ,o n Step

a & a + i : ! * stepb & a + i! * step

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 9/10

c & a + b : a! = D '=D intervaloc7 & a + 7 * b : a! = D '7=D intervalo 'recordar . & b:a!=D%ntegral & %ntegral + = <! * b : a! * /pa! + D * /pc! + D * /pc7! + /pb!!

Next iSimpsonDA<Ae7 & %ntegral

nd unction

Modulo 1''"$,3S'''''''''''''''''''''''''''''''''''''''''''''''''onst Ain & D 'WmD=minXonst "iam & 758 'WmXonst $ltura & ;57 'WmX

onst G & 05< 'Wm7=minXonst Pi & D58E''''''''''''''''''''''''''''''''''''''''''''''''''''''''ublic unction funAestanque $s "ouble! $s "oubleim $t $s "oublet & Pi = 8 * "iam J 7nAestanque & Ain = $t : G = $t *

nd unction

ublic unction 2C8AS,$NY. $s "ouble# i $s "ouble! $s "oubleim G $s "ouble# G7 $s "ouble# GD $s "ouble# G8 $s "ouble & funAestanquei!7 & funAestanquei + . = 7 * G!

D & funAestanquei + . = 7 * G7!8 & funAestanquei + . * GD!C8AS,$NY & i + . = ; * G + 7 * G7 + 7 * GD + G8!nd unction

ublic unction SolAtanqueA)ta $s "ouble# b $s "ouble# c $s "ouble# t $s "ouble! $s "oubleolAtanqueA)t & a * xpb * t! + cnd unction

Modulo 2''"$,3S'''''''''''''''''''''''''''''''''''''''''''''''''onst Ain & 75; 'WmD=minXonst "iamAestanque & D5< 'WmX

onst $ltura & 0 'WmXonst diamAout & 057E 'WmXonst Pi & D58Eonst g & ?5< 'Wm=s7X'''''''''''''''''''''''''''''''''''''''''''''''''''''''ublic unction funAestanqueA7 $s "ouble! $s "oubleim $t $s "ouble# Aout $s "oublet & Pi = 8 * "iamAestanque J 7Aout & Pi = 8 * diamAout J 7 * 7 * g * ! J 05EnAestanqueA7 & Ain = $t : Aout = $t

nd unction

ublic unction 2C8AS,$NYA7. $s "ouble# i $s "ouble! $s "ouble

im G $s "ouble# G7 $s "ouble# GD $s "ouble# G8 $s "ouble & funAestanqueA7i!7 & funAestanqueA7i + . = 7 * G!D & funAestanqueA7i + . = 7 * G7!8 & funAestanqueA7i + . * GD!C8AS,$NYA7 & i + . = ; * G + 7 * G7 + 7 * GD + G8!nd unction

ublic unction SolAtanqueA)tA7a $s "ouble# b $s "ouble# c $s "ouble# t $s "ouble! $s "oubleolAtanqueA)tA7 & a * xpb * t! + cnd unction

ub euler

ublic Sub M,3"3A42A"3!NH2S3 "$,3S %N%/%$4S P23H2$M$

"uncion edoPublic unction funAejemplot $s "ouble# $s "ouble! $s "oublefunAejemplo & : xp:t! : nd unction$ub borrar edoSub orrarA42!2ange(7(# (000(! & Nullnd Sub

7/17/2019 VBA

http://slidepdf.com/reader/full/vba563db8a9550346aa9a95c09d 10/10

'Se crean las variables t0# 0# .# a #b de tipo "oubleim t0 $s "ouble# 0 $s "ouble# a $s "ouble# b $s "ouble'se ingresan los valores iniciales#'paso extremos del intervalo de resolucion

0 & 0 'condicion inicial0 & 0& 05 'paso& 0 'extremos intervalo de resolucion Wa#bX& 0'impresion de datos en la planilla

ange(7(! & (/ondicion %nicial( ',exto que se imprime en celdasange(D(! & (t0&(

ange(8(! & (0&(ange(7(! & (Paso(ange(D(! & (.&(ange(8(! & (xt5 %nt(ange(E(! & (a&(ange(;(! & (b&(ange(<(! & (i(ange(/<(! & (t(ange("<(! & (t!(ange(/D(! & t0 '%mpresion de valoresange(/8(! & 0 'en planillaange(D(! & .ange(E(! & a

ange(;(! & b

2S34/%3N P32 M,3"3 42'Se crean variables n# i# ti# i# iA

im n $s "ouble# i $s %ntegerim ti $s "ouble# tiA $s "oubleim i $s "ouble# iA $s "ouble

& b : a! = . 'Numero de sub:intervalos

& t0 '/5%& 0 '/5%

ange(?(! & 0 'impresion de valores iteracion ceroange(/?(! & t0ange("?(! & 0

or i & ,o n Step

iA & i + . * funAejemploti# i! 'Metodo de ulertiA & ti + . '$umento Bariable %ndependiente

2ange(( K ? + i! & i 'impresion de valores iteracion ( i (2ange(/( K ? + i! & tiA2ange("( K ? + i! & iA

ti & tiA '2ecargo valores para proxima %teracion5i & iA

ext ind Sub