Matlab - Resolución ecuación primer grado normal y corriente

 
Vista:

Resolución ecuación primer grado normal y corriente

Publicado por Carlos Marí Barceló (60 intervenciones) el 31/03/2011 12:46:04
Hola a todos.

Es una duda estúpida pero no se como resolverla. He trabajado con otros softs matemáticos y normalmente con la opción solve(x) se soluciona. Pero aquí al trabajar con matrices y toda la historia parece que no hay manera. He buscado en el Help y googleando pero no hay manera.
La cosa es, tengo una ecuación por ejemplo:
I=S/raiz3*U que sería para calcular la intensidad en electricidad a partir de una potencia S.

Ahora imaginemos que dependiendo de los valores que me entren aislo una cosa o otra, es decir, si me entran por teclado S y U aislo I. Si me entran I y S aislo U, etc.

Pues no se como hacer que haga eso xD

Yo pensaba que sería algo como solve(incognita) pero obviamente no funciona y no se como hacerlo. Alguien puede echarme un clable?

Es para el proyecto fin de carrera gracias!!!
Un saludo Carlos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/03/2011 16:40:29
Hola Carlos.
Hice un programa a tu pedido, aca te mando. Bueno hice segun yo entiendo tu pregunta. Sino es asi, vuelves a escribir. Te comento que nose mucho de electronica, me gustaria que explicaras mejor las variables U, S, T y asi poder mejorar el programa

clear
disp(' OPCIONES')
disp(' ENTRADA DE DATOS: S y U [1]')
disp(' ENTRADA DE DATOS: S y I [2]')
disp(' SALIR [3]')
k=input('INGRESE LA OPCIÓN: ');
switch(k)
case 1
S=input('Ingrese S: ','s');
U=input('Ingrese U: ','s');
r1=nthroot(3,2);r=num2str(r1);
I=solve(['In','=',S,'/',r,'*',U],'In');
fprintf('La intensidad es:%7.4f\n',double(I));

case 2
S=input('Ingrese S:','s');
In=input('Ingrese I:','s');
r1=nthroot(3,2);r=num2str(r1);
U=solve([In,'=',S,'/',r,'*','U']);
fprintf('El Valor de U es:%7.4f\n',double(U));

case 3
disp('PROGRAMA FINALIZADO...GRACIAS');

otherwise
disp('OPCIÓN NO VÁLIDA');
end

%ejecucion en la venana de comandos:

>> intensidad
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
SALIR [3]
INGRESE LA OPCIÓN: 1
Ingrese S: 5
Ingrese U: 8
La intensidad es:23.0934



>> intensidad
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
SALIR [3]
INGRESE LA OPCIÓN: 2
Ingrese S:6
Ingrese I:10
El Valor de U es: 2.8868

Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 31/03/2011 17:16:58
Aún no he probado el código. Ahora me pongo.

Las variables son números normales, en este caso valores de tensión o intensidad o potencia. Son valores naturales positivos.

El problema es que he puesto esta ecuación como ejemplo porque es más sencilla, pero la que realmente tengo que utilizar no tiene 3 variables, sino 7. Claro que se me había ocurrido hacerlo caso por caso, pero es un plomozo, queda poco estético dentro del código y aparte no se si es muy óptimo.

Pensaba que a lo mejor existía una única función que permite aislar una incógnita de una ecuación teniendo el resto de valores necesarios.
De todas formas estoy muy agradecido por la rápida respuesta y este código me va a ayudar mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 31/03/2011 17:24:51
Me da error el código :S
??? Undefined function or method 'solve' for input arguments of type 'char'.

Error in ==> Ecuacionforo at 12
I=solve(['In','=',S,'/',r,'*',U],'In');


Lo he copiado tal cual. Tengo el R2009a. >_<
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/03/2011 17:43:01
Tambien en esa version el programa se ejecua bien.
MI pregunta seria, ¿sabes maltab a nivel basico?, sino escribime a mi correo ahorita y te mando la forma de ejecutar en fotografia.

Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 31/03/2011 18:20:42
Se básico básico. Y se programar algo que he hecho en c++.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/03/2011 18:29:03
Hummmm entonces habra unos cuantos problemas en tu problema. Pero no me haz dicho, si haz podido ejecutar si o no el programa que te mandé. Ademas lo que pides no es tan sencillo. Pero se puede hacer.

Bueno te dejo. me voy a la universidad nacional mayor de San marcos- Peru.

Ya mañana entraré nuevamente al foro a jugar un rato con MATLAB, digo asi porque
MATLAB es mi jobi. Yo disfruto resolviendo los problemas de matlab.

Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 31/03/2011 18:42:11
Si que se ejecuta. Pide los datos y si le das al 3 vuelve a comenzar y si le das a cualquiera de las dos opciones pide los datos todo correcto.
Después de pedir los datos, al ejecutarse:
I=solve(['In','=',S,'/',r,'*',U],'In');

es cuando da el error.

??? Undefined function or method 'solve' for input arguments of type 'char'.

Error in ==> Ecuacionforo at 12
I=solve(['In','=',S,'/',r,'*',U],'In');

Gracias por tus respuestas. :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/03/2011 18:49:07
Hola Carlos.
Hace rato te escribi para decirte q me escribas a mi correo y poder mandarte en fotografia como se ejecuta el programa. Ademas poder enviarte el codigo en matlab, porque haz veces los codigos no se pegan bien cuando copias de una pagina web y lo pegas en matlab.

Bueno te dejo a tu libre decision. De ti depente. Nos vemos.

Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 06/04/2011 12:44:28
Ya he conseguido que funcione. Tuve que intalar el R2010b.

Ahora sobre el código que me comentaste para resolver ecuaciones de primer grado, he querido añadir una tercera opción y no me funciona. Aparte, los dos primeros casos no dan el resultado que debería (matemáticamente si se hace con una calculadora no da resultado correcto) y me gustaría saber porqué.
El código lo copio al final. Lo que me resulta más complicado de entender es la función solve como en este caso: I=solve(['In','=',S,'/',r,'*',U],'In');
En este caso queremos resolver I (que supongo que no no hay diferencia entre poner I o In, eso no lo entiendo). Luego, todas las variables conocidas no van como string y el resto sí?

Pero luego este otro ejemplo es distinto: U=solve([In,'=',S,'/',r,'*','U']); en este caso queremos resolver U y la última parte del código cambia y no se porqué...

Además la última parte que he añadido da error (el case3) . El error es este: ??? Undefined function or variable 'In'.

Error in ==> Ecuacionforo at 27
S=solve([In,'=','S','/',r,'*',U]);


Código:
clear
disp(' OPCIONES')
disp(' ENTRADA DE DATOS: S y U [1]')
disp(' ENTRADA DE DATOS: S y I [2]')
disp(' ENTRADA DE DATOS: U y I [3]')
disp(' SALIR [0]')
k=input('INGRESE LA OPCIÓN: ');
switch(k)
case 1
S=input('Ingrese S: ','s');
U=input('Ingrese U: ','s');
r1=nthroot(3,2);r=num2str(r1);
I=solve(['In','=',S,'/',r,'*',U],'In');
fprintf('La intensidad es:%7.4f\n',double(I));

case 2
S=input('Ingrese S:','s');
In=input('Ingrese I:','s');
r1=nthroot(3,2);r=num2str(r1);
U=solve([In,'=',S,'/',r,'*','U']);
fprintf('El Valor de U es:%7.4f\n',double(U));

case 3
U=input('Ingrese U:','s');
I=input('Ingrese I:','s');
r1=sqrt(3); r=num2str(r1);
S=solve([In,'=','S','/',r,'*',U]);
fprintf('El valor de S es:%7.4f\n',double(S));

case 0
disp('PROGRAMA FINALIZADO...GRACIAS');

otherwise
disp('OPCIÓN NO VÁLIDA');
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 06/04/2011 15:01:23
Ya he visto el fallo. Es cosa mía por no expresarlo bien en la primera consulta. Falta un paréntesis: I=S/(raiz3*U) y de ahí el fallo de cálculos. Perdón por la confusión y gracias por las respuestas :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/04/2011 15:57:32
Hola Carlos.
Con respecto de que los resultados que esta mostrando MATLAB son diferentes a lo estas sacando con la calculadora es por esta razon es: I=S/raiz3*U, Porque al inicio tu pregunta era con I=S/raiz3*U, pero en realidad debe ser I=S/(raiz3*U). Bueno ya arreglamos aquel incoveniente:
Aqui esta el programa arreglado:


clear
disp(' OPCIONES')
disp(' ENTRADA DE DATOS: S y U [1]')
disp(' ENTRADA DE DATOS: S y I [2]')
disp(' ENTRADA DE DATOS: U y I [3]')
disp(' SALIR [4]')
k=input('INGRESE LA OPCIÓN: ');
switch(k)
case 1

S=input('Ingrese S: ','s');
U=input('Ingrese U: ','s');
r1=nthroot(3,2);r=num2str(r1);
I=solve(['In','=',S,'/(',r,'*',U,')'],'In');
fprintf('La intensidad es:%7.4f\n',double(I));


case 2
S=input('Ingrese S:','s');
In=input('Ingrese I:','s');
r1=nthroot(3,2);r=num2str(r1);
U=solve([In,'=',S,'/(',r,'*','U',')']);
fprintf('El Valor de U es:%7.4f\n',double(U));

%I= S/(raiz3*U)
case 3
U=input('Ingrese U:','s');
In=input('Ingrese I:','s');
r1=sqrt(3); r=num2str(r1);
S=solve([In,'=','S','/(',r,'*',U,')']);
fprintf('El valor de S es:%7.4f\n',double(S));

case 4
disp('PROGRAMA FINALIZADO...GRACIAS');

otherwise
disp('OPCIÓN NO VÁLIDA');
end

%LO EJECUTAREMOS CON LOS SIGUIENTES DATOS Y PROBAREMOS TODO LOS CASOS
%S=100, U=10; I=5.7733

>> casoscarlos
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
ENTRADA DE DATOS: U y I [3]
SALIR [4]
INGRESE LA OPCIÓN: 1
Ingrese S: 100
Ingrese U: 10
La intensidad es: 5.7733


>> casoscarlos
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
ENTRADA DE DATOS: U y I [3]
SALIR [4]
INGRESE LA OPCIÓN: 2
Ingrese S:100
Ingrese I:5.7733
El Valor de U es:10.0001


>> casoscarlos
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
ENTRADA DE DATOS: U y I [3]
SALIR [4]
INGRESE LA OPCIÓN: 3
Ingrese U:10
Ingrese I:5.7733
El valor de S es:99.9993


>> casoscarlos
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
ENTRADA DE DATOS: U y I [3]
SALIR [4]
INGRESE LA OPCIÓN: 4
PROGRAMA FINALIZADO...GRACIAS


>> casoscarlos
OPCIONES
ENTRADA DE DATOS: S y U [1]
ENTRADA DE DATOS: S y I [2]
ENTRADA DE DATOS: U y I [3]
SALIR [4]
INGRESE LA OPCIÓN: 6
OPCIÓN NO VÁLIDA

Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 01/04/2011 15:35:23
Hola Carlos.
??? Undefined function or method 'solve' for input arguments of type 'char'
traducido: Función o método no definido "solve" para los los argumentos de entrada del tipo 'char'.
Lo que te que esta diciendo este mensaje es que no tienes la funcion 'solve' de matlab en tu programa.
Que raro por la version que tienes deberias tenenerlo.
Haber digita: help solve
y se saldrá este mensaje
>> help solve
SOLVE Symbolic solution of algebraic equations.
SOLVE('eqn1','eqn2',...,'eqnN')
SOLVE('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')
SOLVE('eqn1','eqn2',...,'eqnN','var1','var2',...'varN')

The eqns are symbolic expressions or strings specifying equations. The
vars are symbolic variables or strings specifying the unknown variables.
SOLVE seeks zeros of the expressions or solutions of the equations.
If not specified, the unknowns in the system are determined by FINDSYM.
If no analytical solution is found and the number of equations equals
the number of dependent variables, a numeric solution is attempted.

Three different types of output are possible. For one equation and one
output, the resulting solution is returned, with multiple solutions to
a nonlinear equation in a symbolic vector. For several equations and
an equal number of outputs, the results are sorted in lexicographic
order and assigned to the outputs. For several equations and a single
output, a structure containing the solutions is returned.

Examples:

solve('p*sin(x) = r') chooses 'x' as the unknown and returns

ans =
asin(r/p)

[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0') returns

x =
[ 1]
[ 3]

y =
[ 1]
[ -3/2]

S = solve('x^2*y^2 - 2*x - 1 = 0','x^2 - y^2 - 1 = 0') returns
the solutions in a structure.

S =
x: [8x1 sym]
y: [8x1 sym]

[u,v] = solve('a*u^2 + v^2 = 0','u - v = 1') regards 'a' as a
parameter and solves the two equations for u and v.

S = solve('a*u^2 + v^2','u - v = 1','a,u') regards 'v' as a
parameter, solves the two equations, and returns S.a and S.u.

[a,u,v] = solve('a*u^2 + v^2','u - v = 1','a^2 - 5*a + 6') solves
the three equations for a, u and v.

See also dsolve.

Overloaded methods:
cgvariable/solve
cgvalue/solve
cgsubexpr/solve
cgfeature/solve
cgexpr/solve
cgdivexpr/solve

Reference page in Help browser
doc solve

en la ventana de comandos de matlab y si te sale nuevamente el mensaje de funcion indefinida, entonces compra el programa nuevamente, seria una solucion mas facil.
Caso contrario seria conseguir esa funcion solve en otra maquina donde hay matlab y que exista esa funcion y copiarle y pegarlo a tu maquina en la misma ruta en que se encuentra en la maquina anterior.
Estoy messenger ahorita.


Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Resolución ecuación primer grado normal y corriente

Publicado por Carlos (60 intervenciones) el 31/03/2011 18:51:16
Te escribí al mail. No lo has recibido?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolución ecuación primer grado normal y corriente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/03/2011 19:18:16
Ya te mande tu programa y la fotografia de como se ejecuta a tu correo.
Mañana entro nuevamente al foro.
Me voy a la universidad Nacional Mayor de San Marcos -Peru
Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar