%% prog20230322 mi primer programa clearvars; %borra las variables de la memoria clear all; %borra las variables de la memoria close all; %cierra las ventanas de graficos clc; %limpia la ventana de comandos %el signo porcentaje "%" se usa para estableceer comentarios %los comentarios son lineas de programa que no se ejecutan %y sirven para documentar la estructura del programa y ayuda %a recordar comandos y operaciones %al nombrar un programa se deben evitar los espacios " ", letras como la "ñ" %signos especiales como "#" "&", vocales con acentos "á" %% variables y asignaciones %el comando para asignar un valor a una variable es el signo igual "=" %una variable es un nombre que se usa para identificar un espacio de memoria %NombreVariable = valor; x = 1; y = 2; %el valor puede ser un numero entero, un numero de punto flotante %una cadena de caracteres o una variable logica var_numero_entero = 12; var_numero_punto_flotante = 3.6713549; var_logica = true; var_cadena_caracteres = 'hola como estas?'; %otro aspecto del operador asignacion es que es unidireccional z = x + y; %pero no es valido escribir x + y = z %z = x + y; es igual a %z <--- x + y; %la suma se realiza y el resultado se guarda en la variable z %% caracteres especiales con los que se debe tener cuidado %parentesis de cualquier tipo () [] {} son operadores o parte de una funcion de octave %tambien son operadores # & ~ ^ / \ , . + - %si hay problemas con el teclado usar la pagina web https://elcodigoascii.com.ar/ %% mayusculas y minusculas %indican variables distintas VariaX = 12; variax = 'hola'; VariaZ = z + y + VariaX; %es una instruccion correcta VariaY = z + y + variax; %es una instruccion incorrecta %el octave es un lenguaje bastante laxo permite varias operaciones %pero la diferencia de minusculas y mayusculas importa %VariaX = z + y + VARIAX esto da un error %error: 'VARIAX' undefined near line 56, column 17 %error: called from % prog20230322MiPrimerPrograma at line 56 column 8 %% operaciones aritmeticas usuales x01 = 3; x02 = 5; x03 = 6; y01 = x01 + x02; %suma -----------> 5to orden de presedencia y02 = x02 - x01; %resta -----------> 4to orden de precedencia y03 = x01*x02; %multiplicacion -----------> 3er orden de precedencia y04 = x02/x03; %division -----------> 2do orden de precedencia y05 = x03^x01; %exponenciacion -----------> 1er orden de precedencia z01 = y01+y02-y03*y04/y05^x01; z02 = (y01+(y02-y03*y04)/y05)^x01;%-----------> los parentesis cambian orden de precedencia %% funciones matematicas %trigonometricas w01 = sin(x01); %funcion senoidal w02 = cos(x01); %funcion cosenoidal w03 = tan(x01); %funcion tangente w04 = asin(w01); %funcion arcoseno w05 = acos(w01); %funcion arcocoseno w06 = atan(w01); %funcion arcotangente %exponenciales y logaritmos w07 = exp(w01); %funcion exponencial w08 = log(w01); %logaritmo base natural - funcion inversa de exp() w09 = log10(w01); %funcion logaritmo base 10 - funcion inversa de 10^(x) w10 = 10^(w01); %funcion elevado a 10 %raices w11 = sqrt(w01); %raiz cuadrada w12 = w01^(1/2); %raiz cuadrada w13 = w01^(1/3); %raiz cubica %% matematica compleja c01 = 3 + 2*i; c02 = 1 + 4*j; c03 = 2 + 5*1i; %las letras "i" y "j" se pueden usar como unidad imaginaria sqrt(-1) %y tambien "1i" en el caso que usemos la variable i como un numero 1 = 3, o j = 2.45 cy01 = c01 + c02; %suma -----------> 5to orden de presedencia cy02 = c02 - c01; %resta -----------> 4to orden de precedencia cy03 = c01*c02; %multiplicacion -----------> 3er orden de precedencia cy04 = c02/c03; %division -----------> 2do orden de precedencia cy05 = c03^c01; %exponenciacion -----------> 1er orden de precedencia %las funciones matematicas pueden actuar sobre los complejos cw01 = sin(c01); cw02 = log(c01); cw03 = log(-4); %se debe tener cuidado porque logaritmo de un numero negativo %no da error, da un numero complejo y el programa se sigue ejecutando %pero esto puede dar resultados erroneos %por otra parte en el uso de la raiz cuadrada cw04 = sqrt(-4); %debemos recordar que sqrt(-4) = +2i y -2i rw04 = sqrt(4); %debemos recordar que sqrt( 4) = +2 y -2 %esto implica usar adecuadamente el resultado dentro del contexto %otras raices como la raiz cubica debemos esperar tres resultados rw05 = 8^(1/3); cw05 = -8^(1/3); %pero obtenemos solamente uno el posible uso de los dos restantes %resultados se debe considerar en el contexto %un numero complejo se puede separar en parte real e imaginaria algo_real = real(c01); algo_imag = imag(c01); %un numero complejo se puede separar en modulo y angulo de fase modulo = abs(c01); fase = angle(c01); %el resultado es en radianes %% variables logicas y sus operaciones logi01 = true; logi02 = false; %operacion "y logica" con el signo "&&" logi03 = logi01 && logi02; %logi01 | logi02 | logi01 && logi02 %---------------------------------- % 1 | 1 | 1 % 1 | 0 | 0 % 0 | 1 | 0 % 0 | 0 | 0 %operacion "o logico" con el signo "||" (usar alt 124) logi04 = logi01 || logi02; %logi01 | logi02 | logi01 || logi02 %---------------------------------- % 1 | 1 | 1 % 1 | 0 | 1 % 0 | 1 | 1 % 0 | 0 | 0 %operacion "no logica" con el signo "~" (usar alt 126) logi05 = ~logi01; %logi01 | ~logi01 %----------------- % 1 | 0 % 0 | 1 logi06 = ~(logi01 && logi03)||(logi04 && ~logi05); %% operadores relacionales o de comparacion %comparan valores de variables y generan como resultado una variable logica num01 = 1; num02 = 2; num03 = 3; num04 = num01 + num02; logi04 = num01 < num02; %el operador "<" significa menor que logi05 = num03 <= num02; %el operador "<=" significa menor o igual que logi06 = num04 > num03; %el operador ">" significa mayor que logi07 = num04 >= num01; %el operador ">=" significa mayor o igual que logi08 = num04 == num01; %el operador "==" significa igual que logi09 = num04 ~= num02; %el operador "~=" significa distinto que