Simulador Blackman
Enviado por SkySly02 • 21 de Noviembre de 2024 • Práctica o problema • 1.198 Palabras (5 Páginas) • 30 Visitas
(*Importar datos desde el archivo CSV*)datosConEncabezado=
Import["/Users/alejandroleconaperales/Documents/dataset.csv"
importa
datos=
(*Eliminar la primera fila encabezado*)
Rest[datosConEncabezado];
todos excepto el primero
,
"CSV"];
(*Extraer cada serie de datos*)
datosT= datos〚
All, 1〛;
todo
datosX= datos〚
All, 2〛;
todo
datosS= datos〚
All, 4〛;
todo
datosP= datos〚
All, 3〛;
todo
(*Crear pares {t,variable} para cada serie*)
datosXPares=
Transpose[{datosT, datosX}];
transposición
datosSPares=
Transpose[{datosT, datosS}];
transposición
datosPPares=
Transpose[{datosT, datosP}];
transposición
(*Ajuste polinómico *)
gradoPolinomio= 5;
(*Definir el modelo polinómico*)
modeloPolinomico=
Table[t ^ i, {i, 0, gradoPolinomio}];
tabla
(*Encontrar la ecuacion para X(t)BIOMASA*)
ajusteX=
Fit[datosXPares, modeloPolinomico, t];
ajusta
Print["Ecuación ajustada para X(t): "
, ajusteX];
escribe
(*Encontrar la ecuacion para S(t)SUSTRATO*)
ajusteS=
Fit[datosSPares, modeloPolinomico, t];
ajusta
Print["Ecuación ajustada para S(t): "
, ajusteS];
escribe
Printed by Wolfram Mathematica Student Edition
2 Tarea 2 Biorreaccion1.nb
Print["Ecuación ajustada para S(t): "
, ajusteS];
escribe
(*Encontrar la ecuacion P(t)PRODUCTO*)
ajusteP=
Fit[datosPPares, modeloPolinomico, t];
ajusta
Print["Ecuación ajustada para P(t): "
, ajusteP];
escribe
(*Definir una función para calcular R*)(*Funcion reutilizable *)
calcularR[datos
_, ajuste_] :=
Module[{yReal, yAjuste, ssTotal, ssRes, r2}, yReal= datos〚
All, 2〛;
módulo
todo
yAjuste= (ajuste /. t → #) & /@ datos〚
All, 1〛;
todo
ssTotal=
Total[(yReal-
total
Mean[yReal]) ^ 2];
media
ssRes =
Total[(yReal- yAjuste) ^ 2];
total
r2 = 1- (ssRes / ssTotal);
Sqrt[r2]];
raíz cuadrada
(*Calcular R para cada ajuste*)(*Usar la funcion dinamica anterior*)
rX = calcularR[datosXPares, ajusteX];
rS = calcularR[datosSPares, ajusteS];
rP = calcularR[datosPPares, ajusteP];
(*Mostrar los valores de R*)
Print["Valores de R:"];
escribe
Print["R para X(t): "
escribe
Print["R para S(t): "
escribe
Print["R para P(t): "
escribe
,
,
,
N[rX]];
valor numérico
N[rS]];
valor numérico
N[rP]];
valor numérico
(*Graficar las funciones *)
(*Antes de eso Definir el rango de t*)
tMin=
Min[datosT];
mínimo
tMax =
Max[datosT];
máximo
Printed by Wolfram Mathematica Student Edition
Tarea 2 Biorreaccion1.nb 3
tMax =
Max[datosT];
máximo
(*Gráfica de X(t)*)
graficaX=
Show[
ListPlot[datosXPares,
PlotStyle → {
mues⋯
representación de lista
estilo de represe⋯
Red},
rojo
PlotLabel → "Datos X(t)"],
Plot[ajusteX, {t, tMin, tMax},
etiqueta de representación
representación gráfica
PlotLabel → "Ajuste Polinómico para X(t) con R = " <>
etiqueta de representación
AxesLabel → {"t"
,
"X(t)"}];
etiqueta de ejes
PlotMarkers →
marcadores de re⋯
Automatic,
automático
PlotStyle → {
estilo de represe⋯
ToString[
convierte a⋯
N[rX]],
valor numérico
Blue}],
azul
(*Gráfica de S(t)*)
graficaS=
Show[
ListPlot[datosSPares,
PlotStyle → {
Green},
mues⋯
representación de lista
estilo de represe⋯
verde
PlotLabel → "Datos S(t)"],
Plot[ajusteS, {t, tMin, tMax},
etiqueta de representación
representación gráfica
PlotLabel → "Ajuste Polinómico para S(t) con R = " <>
etiqueta de representación
AxesLabel → {"t"
,
"S(t)"}];
etiqueta de ejes
PlotMarkers →
marcadores de re⋯
Automatic,
automático
PlotStyle → {
Orange}],
estilo de represe⋯
naranja
ToString[
convierte a⋯
N[rS]],
valor numérico
(*Gráfica de P(t)*)
graficaP=
Show[
ListPlot[datosPPares,
mues⋯
representación de lista
Automatic,
automático
PlotStyle → {
estilo de represe⋯
Purple},
púrpura
PlotMarkers →
marcadores de re⋯
PlotLabel → "Datos P(t)"],
etiqueta de representación
Plot[ajusteP, {t, tMin, tMax},
PlotStyle → {
representación gráfica
estilo de represe⋯
Magenta}],
magenta
PlotLabel → "Ajuste Polinómico para P(t) con R = " <>
etiqueta de representación
AxesLabel → {"t"
,
"P(t)"}];
etiqueta de ejes
ToString[
convierte a⋯
N[rP]],
valor numérico
(*Calcular las derivadas y segundas derivadas*)
(*Derivadas de X(t)*)
derivadaX=
D[ajusteX, t];
deriva
segundaDerivadaX=
D[ajusteX, {t, 2}];
deriva
Print["Primera derivada de X(t): "
, derivadaX];
escribe
Print["Segunda derivada de X(t): "
, segundaDerivadaX];
escribe
(*Derivadas de S(t)*)
Printed by Wolfram Mathematica Student Edition
4 Tarea 2 Biorreaccion1.nb
derivadaS=
D[ajusteS, t];
deriva
segundaDerivadaS=
D[ajusteS, {t, 2}];
deriva
Print["Primera derivada de S(t): "
escribe
Print["Segunda derivada de S(t):
...