Documente Academic
Documente Profesional
Documente Cultură
CORRIDA DE PRUEBA
--> exec("EJERCICIO1.sce.sce");
Calculo de Área Lateral y Total de un cilindro
proporcione el radio en centímetros 2.7
Proporcione la longitud del cilindro en centímetros 12.4
COMENTARIOS
Este fue el primer ejercicio que hicimos por nuestra cuenta, a mí me pareció
relativamente sencillo, ya que era muy similar al ejercicio de ejemplo, en mi caso
corrió el programa hasta el tercer intento, mas que nada por errores al momento de
introducir los comandos, esto debido a que apenas comienzo a familiarizarme con estos
antes mencionados.
CORRIDA DE PRUEBA
--> exec("ejercicio3.sce");
Volumen en m^3: 2
Temperatura en °c: 25
COMENTARIOS
Este ejercicio fue hasta el momento el más laborioso de realizar ya que algunas unidades
eran diferentes entre sí como por ejemplo la temperatura que nos pedía introducir grados
centígrados pero dentro de la ecuación se trabaja con grados Kelvin, por lo cual decidí
introducir una variable extra en donde el usuario pudiese introducir los grados
centígrados y dentro de la ecuación esos grados centígrados se viesen reflejados en su
equivalente en Kelvin, el despeje fue relativamente sencillo, solo fue cuestión de
observar bien las unidades con la que este trabaja, este programa lo probé alrededor de
unas cuatro veces, para verificar que las formulas asignadas en las variables
funcionarán bien.
Escribir un programa en Scilab que calcule la presión empleando la ecuación de estado de Van der
Waals. El programa debe solicitar al usuario como datos la temperatura, el volumen específico, la
temperatura crítica y la presión crítica (en las unidades indicadas anteriormente). El programa no
debe pedir el valor de la constante de los gases: éste debe ser incorporado directamente en el
programa.
Emplear los siguientes valores para la corrida de prueba: T = 298 K, v = 0.6 L/mol, Tc = 304.12 K,
Pc = 72.78 atm.
CORRIDA DE PRUEBA
--> exec("ejercicio4.sce");
Calculo de presión mediante la ecuación de estado de Van der Waals
Datos
Temperatura en K: 298
Volumen Especifico en L/mol: .6
Temperatura crítica en K: 304.12
Presión crítica en atm: 72.78
Resultado
La presión es: 33.862801 atm
COMENTARIOS
Al pricipio me equivoque ya que despeje la ecuación para temperatura en lugar de presión jeje, en
si en este ejercicio no fue tan complicado como parece a simple vista, solo fue cuestión de fijar
bien las variables necesarias con su valor para no tener errores de cálculo, en esta mismo
programa utilice mas “disp.” Uno para los datos y otro para el resultado con el fin de que el
programa tuviese mejor apariencia.
El pH (potencial de hidrógeno) es una manera conveniente de expresar el grado de acidez o alcalinidad de una
solución, y está definido como: pH = −Log10 ⟦H+ ⟧, donde la concentración de iones hidrógeno está expresada en
mol/L. (A) Escribir un programa en Scilab que calcule el pH, cuando se le proporcione como dato la
concentración de iones hidrógeno. Para las corridas de prueba, emplear 5×10−4, 1×10−7 y 2.5×10−9 mol/L. (B,
opcional) Escribir un programa en Scilab que calcule la concentración de iones hidrógeno a partir del valor de
pH. Para las corridas de prueba, emplear pH 5.1 y 10.5.
CORRIDA DE PRUEBA
-->exec("ejercicio5.sce");
Calculo de pH a partir de la concentración de iones H
Datos
Concentración A de Iones Hidrógenos en mol/L: 5e-4
Concentración B de Iones Hidrógenos en mol/L: 1e-7
Concentración C de Iones Hidrógenos en mol/L: 2.5e-9
Resultados
El pH A es: 3.30103 pH
El pH B es: 7 pH
El pH C es: 8.60206 pH
Calculo de concentración de iones H a partir del pH
Datos
Valor de PH A: 5.1
Valor de PH B: 10.5
Resultados
La concentración de iones H A es: 0.0000079 mol/L
La concentración de iones H B es: 3.162D-11 mol/L
COMENTARIOS
Este programa lo realice de forma en el cual se obtenga más de un solo resultado por ejecución, por lo cual
estoy seguro que es más largo y hasta cierto punto más rebuscado al de la mayoría de mis compañeros, utilice
los disp. De tal forma que separara el programa en dos partes; la primera en cálculo de pH y la segunda en
concentración de iones H, el despeje de la fórmula para obtener iones hidrógenos fue muy complicada a mi
parecer, pero al final se obtuvo.
𝐶 = √𝐴2 + 𝐵2 − 2𝐴𝐵𝑐𝑜𝑠Υ
𝑩𝟐 + 𝑪𝟐 − 𝑨𝟐
𝜶 = 𝒂𝒓𝒄𝒄𝒐𝒔
𝟐𝑩𝑪
Finalmente, el tercer ángulo se obtiene por diferencia, puesto que αβγ ++= ° 180 . Para
la corrida de prueba, emplear los valores A = 3.20, B = 9.55 y γ = 85°.
RESULTADOS: C = 9.80, α = 18.98°, β = 76.02°.
CÓDIGO DEL PROGRAMA
//David Castro de la Torre
//Programacion y Metodos Numericos
//Ejercicio 6
//26-FEB-2019
clear
disp("Resolución de triangulos: cuado se conoce lados A y B, y angulo Gama")
disp("Datos")
A=input("lado A es igual a unidades: ");
B=input("lado B es igual a unidades: ");
y=input("Angulo y es igual a °: ");
C=(A^(2)+B^(2)-(2*A*B)*(cosd(y)))^(1/2);
u=(B^(2)+C^(2)-A^(2))/(2*B*C);
a=acosd(u);
b=180-a-y;
disp("Resultados")
disp("el lado C es igual a: "+string(C)+" u")
disp("el angulo a es igual a: "+string(a)+"°")
disp("el angulo b es igual a: "+string(b)+"°")
CORRIDA DE PRUEBA
--> exec("ejercicio6.sce");
Resolución de triangulos: cuado se conoce lados A y B, y angulo Gama
Datos
lado A es igual a unidades: 3.20
lado B es igual a unidades: 9.55
Angulo y es igual a °: 85
Resultados
el lado C es igual a: 9.8038534 u
el angulo a es igual a: 18.975282°
el angulo b es igual a: 76.024718°
COMENTARIOS
Este ejercicio fue de los más sencillos ya que las formulas requeridas para obtener cada resultado
ya venían incluidas en el problema por lo cual no es necesario despejar ni nada, el único
inconveniente que tuve fue que no tenía la hoja con algunas funciones de predefinidas de scilab
por lo que no sabía como escribir “acos”, además de que este problema lo hice en mi casa por mi
cuenta, por lo mismo lo repetí muchas veces hasta que por pura suerte descubrir como introducir el
comando “acos”.
CORRIDA DE PRUEBA
--> exec("ejercicio7.sce");
temperatura en °C: 100
La temperatura es 375.15 K
--> exec("ejercicio7.sce");
temperatura en °C: -76
La temperatura es 199.15 K
--> exec("ejercicio7.sce");
temperatura en °C: -300
La temperatura es errónea
COMENTARIOS
Este fue el primer ejercicio de la unidad 2, aunque no fue difícil requerí la ayuda del
profesor ya que se empleó un nuevo comando llamado “if”, para entender como se utilizaba
la manera correcta de emplearlo al problema del ejercicio.
CORRIDA DE PRUEBA
--> exec("ejercicio8.sce");
Intenta Adivinar el numero entre el 1 y el 5
Introduce un numero: 1
¡Tronco!
el número es: 2
--> exec("ejercicio8.sce");
Intenta Adivinar el numero entre el 1 y el 5
Introduce un numero: 1
acertaste
el número es: 1
COMENTARIOS
En este ejercicio vimos el uso del “if”, y aparte el uso del “else” que en este caso se
usa para que la computadora haga una decisión que en este caso fue si el número que
introducimos entre el 1 y el 5 es igual al que nos dio aleatoriamente el programa nos
apareciera felicidades y si no nos apareciera te has equivocado.
El ejercicio estuvo sencillo ya que solo solicitamos un valor al usuario y usamos otro
código que fue el int para escoger un numero al azar y la formula que utilizamos fue ==
que significa es igual a.
CORRIDA DE PRUEBA
--> exec("ejercicio9.sce");
Suma de cubos
introduzca el valor n: 21
La suma es: 53361
COMENTARIOS
En si no hubo complicaciones ya que el ciclo hace todo por su cuenta, además de que al
ser cubo se tiene implícito el ^3 en la ecuación.
CORRIDA DE PRUEBA
--> exec("ejercicio10.sce");
Introduce el valor n: 3
La suma es: 6
--> exec("ejercicio10.sce");
Introduce el valor n: 9
La suma es: 362880
--> exec("ejercicio10.sce");
Introduce el valor n: 13
La suma es: 6.227D+09
COMENTARIOS
que converge al valor de π cuando N es un número muy grande. Escribir un programa en Scilab que
emplee un ciclo for para calcular el valor de la sumatoria de acuerdo al valor de N dado por el
usuario. Usar el programa para estimar π para cada uno de los valores indicados de N y registrar
los resultados en la tabla siguiente
CORRIDA DE PRUEBA
--> exec("ejercicio11.sce");
Introduce el valor: 5
La suma es: 2.9760462
--> exec("ejercicio11.sce");
Introduce el valor: 10
La suma es: 3.2323158
--> exec("ejercicio11.sce");
Introduce el valor: 100
La suma es: 3.1514934
--> exec("ejercicio11.sce");
Introduce el valor: 1000
La suma es: 3.1425917
--> exec("ejercicio11.sce");
Introduce el valor: 1000000
La suma es: 3.1415937
COMENTARIOS
Es curioso ver como más grande es la cantidad mas se aproxima al valor real de pi, el ejercicio
fue laborioso más que nada por la sumatoria, fuera de eso es un ejercicio al nivel de los
anteriores.
CORRIDA DE PRUEBA
--> exec("ejercicio12.sce");
introduzca valor: 4
La matriz es:
H =
1. 0.5 0.3333333 0.25
0.5 0.3333333 0.25 0.2
0.3333333 0.25 0.2 0.1666667
0.25 0.2 0.1666667 0.1428571
COMENTARIOS
Si R es el radio de una esfera, el volumen del dodecahedro inscrito (es decir, que sólo
toca a la esfera con sus vértices) está dado por:
(15+7√5)𝐿3 4𝑅
𝑉= donde el lado de los pentágonos está dado por 𝐿 =
4 (1+√5)√3
Escribir una función en Scilab que calcule el volumen de un dodecahedro usando como
dato el radio de la esfera en la que está inscrito, y usarla en un programa para
calcular el volumen del dodecahedro inscrito en una esfera de 15 cm de diámetro.
CORRIDA DE PRUEBA
--> exec("ejercicio13.sce");
Volumen de un dodecahedro
Introduzca el Radio: 7.5
El volumen es 1174.991 cm^3
COMENTARIOS
Este ejercicio fue de los más sencillos en cuestión de generar las formulas
prácticamente porque ya vienen explicadas y desarrolladas en el mismo ejercicio a
realizar, lo que me complico un poco fue el cómo utilizar el comando Función
CORRIDA DE PRUEBA
--> exec("ejercicio15.sce");
El volumen es 98.960169 L
--> exec("ejercicio15.sce");
DAVID CASTRO DE LA TORRE
Programación y Métodos Numéricos
Volumen en un tanque cilíndrico con fondo hemisférico
Nivel en el tanque en metros: 1.5
El volumen es 858.83289 L
--> exec("ejercicio15.sce");
--> exec("ejercicio15.sce");
COMENTARIOS
En este ejercicio batalle un poco ya que aún no estoy acostumbrado a emplear el comando
function, solo en ese caso ya que lo demás es mas sencillo, ya que la formula nos indica
lo que se debe hacer, así que sin líos.
Escribir una función en Scilab que calcule la distancia entre dos puntos, a partir de
dos vectores P y Q que contengan las coordenadas de los puntos. Es decir, el encabezado
de la función debe ser:
function d=distancia(P,Q)
A su vez, el lado del triángulo es la distancia que hay entre los vértices del
triángulo, V1, V2 y V3
Escribir un programa en Scilab que calcule el área de un triángulo, dadas las
coordenadas tridimensionales de sus vértices. Las distancias entre los vértices deben
calcularse usando la función definida en el inciso (A). Para la corrida de prueba,
usar los puntos (1.5, 4, 3.5), (6.5, 9.5, 5) y (8, 1.5, 0.5).
RESULTADO: 27.853.
CODIGO DEL PROGRAMA
//David Castro de la Torre
//Programación y Métodos numéricos
//Ejercicio 16
clear
function d=distancia(P, Q)
d=sqrt((P(1)-Q(1))^2+(P(2)-Q(2))^2+(P(3)-Q(3))^2);
endfunction
disp("Área de un triángulo en 3D")
V1=[0,0,0];
V2=[0,0,0];
V3=[0,0,0];
disp("Introduzca las coordenadas del vértice 1:")
V1(1)=input("X1 = ");
V1(2)=input("Y1 = ");
V1(3)=input("Z1 = ");
disp("Introduzca las coordenadas del vertice 2:")
V2(1)=input("X2 = ");
V2(2)=input("Y2 = ");
V2(3)=input("Z2 = ");
disp("Introduzca las coordenadas del vertice 3:")
V3(1)=input("X3 = ");
V3(2)=input("Y3 = ");
V3(3)=input("Z3 = ");
a=distancia(V1,V2);
b=distancia(V2,V3);
c=distancia(V1,V3);
s=(a+b+c)/2;
A=sqrt(s*(s-a)*(s-b)*(s-c));
disp("El área es: "+string(A))
Área de un triángulo en 3D
Introduzca las coordenadas del vértice 1:
X1 = 1.5
Y1 = 4
Z1 = 3.5
COMENTARIOS
Cuando corri este programa la primera vez, me marcaba un error ya que en la funtion emplee P, Q en
mayúsculas y cuando hice la variable d= d=sqrt((P(1)-Q(1))^2+(P(2)-Q(2))^2+(P(3)-Q(3))^2);
puse la p en minúscula, solo ese fue el error que cometi, después de corregir el
programa funciono bien.
GRÁFICA
COMENTARIOS
GRAFICA
COMENTARIOS
Escribir un programa en Scilab que genere la gráfica de esta suma parcial dado el valor
de N. Usarlo para generar las gráficas correspondientes a los siguientes valores de N: 1,
3, 9 y 21. Para el eje horizontal de la gráfica, abarcar el intervalo [−3 3, ] con al
menos 500 puntos. OPCIONAL Ⓔ: Deducir la serie de Fourier de la función diente de sierra
usada en este ejercicio.
CÓDIGO DEL PROGRAMA
//David Castro de la Torre
//Programación y Métodos numéricos
//Ejercicio 19
clear
disp("Serie de Fourier")
N=input("Introduzca el numero de terminos: ");
X=linspace(-4,4,500);
suma=zeros(X);
for n=1:N;
suma=suma+((-1)^n*sin(n*%pi*X))/n;
end
clf
Y= (-2/%pi)*suma;
plot(X,Y,"yp")
title("Serie de Fourier (N="+string(N)+")")
GRAFICAS
Es interesante como se puede mezclar el uso de comandos y graficas, se puede decir que
este programa es la unión de dos métodos que ya se habían empleado anteriormente, por lo
cual no fue tan complicado
Escribir un programa en Scilab para calcular el valor de la serie para x = 1.55 empleando el número
de términos de la serie indicados a continuación, y calcular el error verdadero y el error relativo
porcentual, tomando en cuenta que el valor verdadero de e1.55 es 4.7114701826.
Como evidencia, entregar el programa, la corrida de prueba para un solo valor, y la tabla
completada. En sus comentarios, indicar claramente a qué conclusión se puede llegar respecto a los
errores cuando se toman más términos en la serie.
CORRIDA DE PRUEBA
--> exec("ejercicio20.sce");
Serie de Taylor para e^x
N: 9
La Sumatoria es: 4.7113023
El error verdadero es: 0.0001679
El error relativo porcentual es: 0.0035642
error relativo
términos valor calculado error verdadero
porcentual
1 1 3.7114702 78.775%
2 2.55 2.1614702 45.876%
3 3.75125 0.9602202 20.380479%
4 4.3718958 0.3395743 7.2073968%
5 4.6123961 0.0990741 2.1028275%
6 4.6869512 0.024519 0.520411%
7 4.7062112 0.0052589 0.1116201%
8 4.710476 0.0009942 0.0211021%
9 4.7113023 0.0001679 0.0035642%
COMENTARIOS:
Cuando hice este programa la primera vez solo obtenía el valor calculado, y el error
verdadero y porcentual tuve que hacerlos manualmente, hasta que note que sería mucho más
rápido si empleaba las formulas directamente en el programa por lo que ahora obtengo los
tres valores que necesito para llenar la tabla.
Considere la función:
Se puede demostrar con facilidad que esta función debería tener el valor de 1 para
cualquier valor de x. Sin embargo, debido al error de redondeo en la computadora, esto no
siempre es cierto. Para cada valor de x de la tabla, calcular el valor de f(x) empleando
Scilab y calcular el error relativo porcentual para llenar la tabla. ¿A qué conclusión se
llega respecto al error conforme x se vuelve un valor cada vez más pequeño?
Comentarios:
Se concluye que cuando X es mas pequeño el error porcentual es mas grande,
además de que si el valor de X es demasiado pequeño Scilab no puede trabajar
con ese valor.
CORRIDA DE PRUEBA
--> exec("ejercicio22.sce");
Método de bisección
Intervalo de búsqueda [xA,xB]?
xA = 0
xB = 10
La solución es 2.0720482 dias
19 iteraciones necesarias
Error relativo aproximado: 0.0009205%
COMENTARIOS:
Este ejercicio resultó sencillo gracias a la explicación que se antecede a la clase y por la ayuda
del programa en la página del curso, debido a que la realización de ese programa es algo complejo.
CORRIDA DE PRUEBA
--> exec("ejercicio23.sce");
Método de Newton-Raphson
Proporcione el valor inicial:
x0 = 1
La solución es x=2.0720332
6 iteraciones necesarias
COMENTARIOS:
Este programa es algo más complejo que el anterior ya que este se trabaja con derivadas
además de las funciones.
Empleando Excel, resolver la ecuación 𝑥𝐶𝑜𝑠(2𝑥) + 0.1 = 0mediante iteración de punto fijo,
tomando como valor inicial x0 = 0.
RESULTADO: 0.844727948
COMENTARIOS
Este ejercicio estuvo realmente sencillo más que nada porque se realizó bajo las
instrucciones del profesor.
CORRIDA DE PRUEBA
--> exec("ejercicio26.sce");
x =
-584.63229
413.39746
-478.86751
130.94011
15.470054
-18.946869
492.26497
413.39746
500.
-13.39746
COMENTARIOS:
Este programa no era tan complicado lo único que si se tenía que tener bastante cuidado a
la hora de introducir los valores dentro de la matriz que le correspondía, ya que con un
valor erróneo se podía alterar todo el resultado.
RESULTADO: 4.988 cP
CORRIDA DE PRUEBA
--> exec("ejercicio28.sce");
Interpolación polinomial de Lagrange
Número de datos: n=4
Introduzca los datos:
x1=0
y1=14.82
x2=10
y2=9.83
x3=20
y3=6.22
x4=35
y4=3.78
Valor para interpolar: x=25
y = 4.9878571
COMENTARIOS:
Al principio había decidido dejarle las notas, pero a veces se las quitaba y se las ponía, lo que
me generaba que tuviese errores a la hora de correr el programa, opte por no dejarle notas y
finalmente corrió bien
CORRIDA DE PRUEBA
--> exec("ejercicio27.sce");
Interpolación lineal
X: Corresponde a la temperatura
Y: Corresponde a la entalpia
Ingrese el valor de X: 80
Ingrese el valor de X1: 50
Ingrese el valor de X2: 100
Ingrese el valor de Y1: 209.34
Ingrese el valor de Y2: 419.17
El valor de Y es 335.238
COMENTARIOS
Este tipo de programa resulta ser muy útil en algunas materias como lo son estadística,
termodinámica, ya que hay se emplean bastante, el programa fue fácil de realizar ya que
solo constaba de pedir datos y en una variable guardar la ecuación necesaria.
--> exec("ejercicio29.sce");
Regresion lineal simple
Número de datos? n=10
Introduzca los datos:
x1=27
y1=57
x2=45
y2=64
x3=41
y3=80
x4=19
y4=46
x5=35
y5=62
x6=39
y6=72
x7=19
y7=52
x8=49
y8=77
x9=15
y9=57
x10=31
y10=68
m =
0.764
b =
39.052
R2 =
0.6802984
COMENTARIOS
CORRIDA DE PRUEBA
--> exec("ejercicio30.sce");
Introduce el valor: 0.1
APROXIMACION DE ORDEN Oh
Valor calculado de la derivada es 0.1346844
El error relativo porcentual es 75.632482%
APROXIMACION DE ORDEN Oh**2
Valor calculado de la derivada es 0.1368534
El error relativo porcentual es 78.460945%
DAVID CASTRO DE LA TORRE
Programación y Métodos Numéricos
--> exec("ejercicio30.sce");
Introduce el valor: 0.01
APROXIMACION DE ORDEN Oh
Valor calculado de la derivada es 0.1355099
El error relativo porcentual es 76.708903%
APROXIMACION DE ORDEN Oh**2
Valor calculado de la derivada es 0.1355382
El error relativo porcentual es 76.745829%
-> exec("Ejercicio30.sce");
Introduce el valor: 0.001
APROXIMACION DE ORDEN Oh
Valor calculado de la derivada es 0.1355204
El error relativo porcentual es 76.72262%
APROXIMACION DE ORDEN Oh**2
Valor calculado de la derivada es 0.1355209
El error relativo porcentual es 76.723214%
--> exec("Ejercicio30.sce");
Introduce el valor: 0.0001
APROXIMACION DE ORDEN Oh
Valor calculado de la derivada es 0.1355207
El error relativo porcentual es 76.722954%
APROXIMACION DE ORDEN Oh**2
Valor calculado de la derivada es 0.1355207
El error relativo porcentual es 76.722982%
COMENTARIOS
Pensé que los valores de la aproximación de Orden Oh tendrían mayor diferencia a
la aproximación de Orden Oh^2, ya que muchas veces solo son diferentes unos de
otros por decimales muy pequeños
CORRIDA DE PRUEBA
--> exec("ejercicio31.sce");
Introduce el número de datos: 5
x1=0
f1=.580
x2=10
f2=.575
x3=20
f3=.591
x4=40
f4=.615
x5=60
f5=.638
La entalpia es 36.195
COMENTARIOS
Este ejercicio fue muy sencillo ya que anteriormente ya se habían realizado programas que
empleaban formulas y situaciones similares.
H = 1 0.9999986 0.8205402
--> exec("ejercicio32.sce");
Método de Euler
Proporcione el punto inicial:
t0=0
y0=.1
Proporcione el valor final de t:
tf=7
Proporcione el valor del paso
h=1
Valor final yf=0.9999986
El error relativo porcentual es: 0.8205402
--> exec("ejercicio32.sce");
Método de Euler
Proporcione el punto inicial:
t0=0
y0=0.1
Proporcione el valor final de t:
tf=7
Proporcione el valor del paso
h=0.5
Valor final yf=0.9966569
El error relativo porcentual es: 0.4836248
--> exec("Ejercicio32.sce");
Método de Euler
Proporcione el punto inicial:
t0=0
y0=0.1
Proporcione el valor final de t:
tf=7
Proporcione el valor del paso
h=0.25
Valor final yf=0.9942918
El error relativo porcentual es: 0.245177
--> exec("Ejercicio32.sce");
Método de Euler
Proporcione el punto inicial:
t0=0
y0=0.1
Proporcione el valor final de t:
tf=7
Proporcione el valor del paso
h=0.1
Valor final yf=0.992834
El error relativo porcentual es: 0.0981991
COMENTARIOS
Este programa se basó en el método de Euler, agregándole al final la formula del
error relativo porcentual.
CORRIDA DE PRUEBA
--> exec("ejercicio14.sce");
Radio del cascaron externo: 3.5
Radio del cascaron interno: 2
El volumen es 146.08406 cm^3
COMENTARIOS
Este ejercicio fue sencillo ya que con las indicaciones del profesor se pudo determinar
una function de forma adecuada, además que las fórmulas para el volumen son sencillas y
fácil de trasladar a una variable de Scilab