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:

0 comments:

Publicar un comentario

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