Desarrollo de Software en C++, C#, PHP,JavaScript, Matlab, Java, Android, Arduino, Python, Flutter, React, Vue, Solución de ejercicios, Programas informáticos, Inteligencia Artificial.

Buscar

Método de Bairstow con Guide en Matlab


Método de Bairstow con Guide en Matlab

En análisis numérico, el método de Bairstow es un algoritmo eficiente de búsqueda de las raíces de un polinomio real de grado arbitrario. El algoritmo apareció por primera vez en el apéndice del libro “Aerodinámica Aplicada”, escrito por
Leonard Bairstow y publicado en1920. El algoritmo se diferencia de otros métodos en que encuentra tanto las raíces reales como las imaginarias (en parejas complejas conjugadas), utilizando únicamente aritmética real.


function btnLimpiar_Callback(hObject, eventdata, handles) %limpiar area de grafico cla %limpiar tabla set(handles.tabla,'Data',{}) %limpiar textboxs set(handles.txtFuncion,'string',''); set(handles.txtX0,'string',''); set(handles.txtPorcentajeError,'string',''); set(handles.txtRaiz,'string',''); function btnCalcular_Callback(hObject, eventdata, handles) %manejo de excepciones con try y catch try funcion=get(handles.txtFuncion,'string'); x0=str2double(get(handles.txtX0,'string')); porcentajeError=str2double(get(handles.txtPorcentajeError,'string')); syms x iteracion=0; errorCalculado=100; f=sym(funcion); derivada=diff(f,x); %Limpiar tabla antes de mostrar resultado set(handles.tabla,'Data',{}) %Comprobando que la derivada no sea cero.Casocontrario mostrar un mensaje %que no hay raiz p.e se ingreso uan constante en lugar de una funcion de x if derivada==0 %Limpiar tabla, grafico en caso de que antes se haya graficado uan %funcion hold off cla set(handles.tabla,'Data',{}) set(handles.txtRaiz,'string','No hay raiz'); else %Iteraciones sucesivas para una mejor aproximacion de la raiz por el metodo %N-R while errorCalculado>porcentajeError fx=subs(f,x0); dx=subs(derivada,x0); x1=x0-(fx/dx); errorCalculado=abs(((x1-x0)/x1)*100); %mostrar datos en tabla %valores = {iteracion x0 x1 errorCalculado}; %temp=get(handles.tabla,'data'); %valoresNuevos=[valores;temp]; %set(handles.tabla,'Data',valoresNuevos) newRow ={iteracion x0 errorCalculado}; oldData = get(handles.tabla,'Data'); newData=[oldData; newRow]; set(handles.tabla,'Data',newData) x0=x1; iteracion=iteracion+1; end %Mostrando respuesta en textbox con formato coma flotante a 16 cifras decimales respuesta=sprintf('%0.16f',x1); set(handles.txtRaiz,'string',respuesta); %Grafica de la funcion hold off handles.axes1=ezplot(f); grid on; hold on; %handles.axes1=plot(x1,subs(f,respuesta),'r*'); zoom on end catch % msgbox('Un error ha ocurrido. Verifique que ha introducido todos los datos y de la forma adecuada','Error','error') end
















Método de Bairstow 

Share:

Matlab - Interfaz Gráfica(GUIDE) Métodos Numéricos



























El siguiente proyecto esta realizado en MATLAB R2014b del curso de Métodos Numéricos que posee  los siguientes Items.


• Método de bisección
• Método de Newton
• Método de la secante
• Método de Gauss
• Método de Gauss-Jordan
• Método matriz inversa
• Método LU
• Método de Gauss-Seidel
• Método de Spline
• Método de Lagrange
• Método de Newton
• Método del Trapecio
• Método de Newton 1/3
• Método de Newton 3/8
• Método de Euler
• Método de Euler Mejorado 



Matlab - Interfaz Gráfica(GUIDE) Métodos Numéricos



Share:

Algoritmo Distribuido Anillo o Ring en C++

Sistema síncrono [Chang & Roberts79]. Cada proceso tiene un canal con el siguiente proceso en el anillo. Los mensajes circulan en sentido de las agujas del reloj.

El proceso que inicia el algoritmo se marca como participante y envía su identificador en un mensaje de elección a su vecino.

Cuando un proceso recibe un mensaje de elección compara el identificador recibido con el suyo.

•Si es menor el recibido y el proceso no es un participante, sustituye el identificador en el mensaje por el suyo y lo reenvía al vecino y se marca como participante.
•Si es mayor el recibido, reenvía el mensaje y se marca como participante.
•Si es menor el recibido y el proceso es un participante, no hace nada (no envía ningún mensaje).
•Si el identificador coincide con el del proceso, ese proceso es el líder.
•El líder se marca como no participante y envía un mensaje elegido al siguiente proceso.
•Cuando un proceso distinto al líder recibe este mensaje, anota qué proceso es el líder y reenvía el mensaje


Código fuente en C++


Algoritmo Distribuido Anillo o Ring en C++

Share:

Algoritmo Distribuido Bully o Abusón en C++

El algoritmo abusón es un método, dentro de la computación distribuida, para la elección dinámica de un coordinador según el ID de los procesos. El proceso con el ID mayor será seleccionado como el coordinador del sistema distribuido.

Premisas
El sistema es síncrono y utiliza tiempo de espera para la identificación de fallos en los procesos.
Se permite que los procesos se bloqueen/caigan durante la ejecución del algoritmo.
La entrega de mensajes entre procesos se supone fiable.
Los IDs de los procesos deben ser conocidos.

Código fuente en C++





















ALGORITMO DISTRIBUIDO BULLY



Share:

DISCULPA LAS MOLESTIAS, LA PUBLICIDAD NOS AYUDA

Para descargar Aguarda 5 seg. y luego hacer click en saltar publicidad...Gracias !!

Saltar Publicidad

Translate

FACEBOOK

Ayúdanos con tu donación !

Etiquetas

twitter.com

Páginas vistas

Labels