34
|0,4| ITERACION a b m f(a) f(b) 1 0 4.00000000 2.00000000 -3.00000000 61.00000000 2 0.00 2.00000000 1.00000000 -3.00000000 5.00000000 3 1.00000000 2.00000000 1.50000000 -2.00000000 5.00000000 4 1.00000000 1.50000000 1.25000000 -2.00000000 0.37500000 5 1.25000000 1.50000000 1.37500000 -1.04687500 0.37500000 6 1.37500000 1.50000000 1.43750000 -0.40039063 0.37500000 7 1.43750000 1.50000000 1.46875000 -0.02954102 0.37500000 a b m f(a) f(b) 1 1.00000000 2.00000000 1.50000000 -0.63212056 27.13533528 2 1.00000000 1.50000000 1.25000000 -0.63212056 8.72313016 3 1.00000000 1.25000000 1.12500000 -0.63212056 3.09900480 4 1.00000000 1.12500000 1.06250000 -0.63212056 1.01996497 5 1.00000000 1.06250000 1.03125000 -0.63212056 0.14344232 6 1.03125000 1.06250000 1.04687500 -0.25659820 0.14344232 7 1.04687500 1.06250000 1.05468750 -0.05968781 0.14344232 f(x)=x 3 - 3 f(x)=e -x +4x 3 -5

jhonn

Embed Size (px)

DESCRIPTION

jhonnnn

Citation preview

BISECCION,f(x)=x3- 3|0,4|ITERACIONabmf(a)f(b)f(m)error104.000000002.00000000-3.0000000061.000000005.000000002.0000000020.002.000000001.00000000-3.000000005.00000000-2.000000001.0000000031.000000002.000000001.50000000-2.000000005.000000000.375000000.5000000041.000000001.500000001.25000000-2.000000000.37500000-1.046875000.2500000051.250000001.500000001.37500000-1.046875000.37500000-0.400390630.1250000061.375000001.500000001.43750000-0.400390630.37500000-0.029541020.0625000071.437500001.500000001.46875000-0.029541020.375000000.168426510.03125000f(x)=e-x+4x3-5abmf(a)f(b)f(m)errorError RelativoRespuesta11.000000002.000000001.50000000-0.6321205627.135335288.723130160.5000000021.000000001.500000001.25000000-0.632120568.723130163.099004800.25000000201.2531.000000001.250000001.12500000-0.632120563.099004801.019964970.1250000011.11111111111.12541.000000001.125000001.06250000-0.632120561.019964970.143442320.062500005.88235294121.062551.000000001.062500001.03125000-0.632120560.14344232-0.256598200.031250003.03030303031.0312561.031250001.062500001.04687500-0.256598200.14344232-0.059687810.015625001.49253731341.04687571.046875001.062500001.05468750-0.059687810.143442320.041094150.007812500.74074074071.0546875

REGULA FALSI0.40.70.0001ITERACIONabF(a)F(b)cF(c)EE%RESPUESTA10.4000000.7000000.22881164-0.974181780.457060570.1036280820.4570610.7000000.10362808-0.974181780.480418440.040361970.02335787340.0486198514030.4804180.7000000.04036197-0.974181780.489154140.014783970.00873569440.0178587765040.4891540.7000000.01478397-0.974181780.492306060.005292540.00315191840.0064023555050.4923060.7000000.00529254-0.974181780.493428320.001879120.00112226420.0022744219060.4934280.7000000.00187912-0.974181780.493826010.000665220.00039769260.0008053295070.4938260.7000000.00066522-0.974181780.493966700.000235250.00014069060.0002848179080.4939670.7000000.00023525-0.974181780.494016450.000083160.00004974190.00010068870.4940164461http://www.monografias.com/trabajos43/programa-raices-excel/programa-raices-excel.shtml

http://www.monografias.com/trabajos43/programa-raices-excel/programa-raices-excel.shtml

biseccionUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELMTODO DE BISECCIN:TOLERANCIA=0.00001Ingrese el valor de la tolerancia deseadaPASO 1: DETECTAR CAMBIO DE SIGNOPASO 2: ITERACIONES PARA ENCONTRAR LA SOLUCINxf(x)LIMITE INFERIORLIMITE SUPERIORPUNTO MEDIOF(PUNTO MEDIO)MENOR A TOL-1010SOLUCIONIngrese los lmites inferior y superior entre los cuales-92000SOLUCIONdetect un cambio de signo-83000SOLUCION-74000SOLUCION-65000SOLUCION-56000SOLUCION-47000SOLUCION-38000SOLUCION-29000SOLUCION-110000SOLUCION011000SOLUCION112000SOLUCION213000SOLUCION314000SOLUCION415000SOLUCION516000SOLUCION617000SOLUCION718000SOLUCION819000SOLUCION920000SOLUCION10Ingrese la frmula para la ecuacin empezando en la celda H11, usando como valor de x G11luego copie la frmula en toda la columnaIngrese la frmula para la ecuacin empezando en la celda B11, usando como valor de x A11la solucin se calcula automticamenteluego copie la frmula en toda la columnala solucin se calcula automticamente

SECANTEUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELMTODO DE LA SECANTETOLERANCIA=0.00001Ingrese el valor de la tolerancia deseadaITERACIONX(FX)MENOR A TOL0SOLUCIONDEBE INGRESAR DOS APROXIMACIONES INICIALES1SOLUCION20SOLUCION30SOLUCION40SOLUCION50SOLUCION60SOLUCION70SOLUCION80SOLUCION90SOLUCION100SOLUCION110SOLUCION120SOLUCION130SOLUCION140SOLUCION150SOLUCION160SOLUCION170SOLUCION180SOLUCION190SOLUCION200SOLUCIONIngrese la frmula para la ecuacin empezando en la celda C10, usando como valor de x B10luego copie la frmula en toda la columnala solucin se calcula automticamente

NEWTONUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELMTODO DE NEWTON-RAPHSONTOLERANCIA=0.00001Ingrese el valor de la tolerancia deseadaITERACIONX(FX)F'(X)MENOR A TOLPRUEBE CON DIFERENTES VALORES DE X0SOLUCION10SOLUCION20SOLUCION30SOLUCION40SOLUCION50SOLUCION60SOLUCION70SOLUCION80SOLUCION90SOLUCION100SOLUCION110SOLUCION120SOLUCION130SOLUCION140SOLUCION150SOLUCION160SOLUCION170SOLUCION180SOLUCION190SOLUCION200SOLUCIONIngrese aqu la frmula de la derivada de f(x), en la celda D10 usando como x B10y luego copiela en toda la columnaIngrese aqu la frmula de f(x) en la celda C10,, usando como x B10

PolinomiosUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELRACES DE POLINOMIOS POR EL METODO DE NEWTON(INCLUYE SOLUCIONES COMPLEJAS)Doble click sobre ste rectngulopara activar el complemento

eLIMINACIN gAUSSUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELSOLUCION DE SISTEMAS LINEALES POR ELIMINACION GAUSSIANAPOR EL METODO MATRICIAL0!Ingrese los coeficientes del sistema!X^(-1)=!000!0000!0Y=0000!0000!0(X^-1)*Y=000!00000!0000!0000!00000!0000!0000!0000!0

Gauss SeidelUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELsolucion de sistemas lineales por el mtodo Gauss-Seidel5x-2y+z=3-x-7y+3z=-22x-y+8z=1Paso 1: Despejar una variable de cada ecuacinx=(3+2y-z)/5y=(x-3z-2)/-7z=(1-2x+y)/8Paso 2: definir valores iniciales para cada incgnitax1=0y1=0lo m{as usado es cero pero puede ser cualquier valorz1=0reemplazar en cada ecuacin los valores halladosx=(3+2*0-0)/5=0,6y=(0,6-3*0-2)/-7=0,2z=(1-2*0,6+0,2)/8=0repetir los clculos usando los nuevos valores de x,y,z hasta que se logre la tolerancia deseadanxnymznpor matrices05-2131-1-73-220.60.202-18130.680.1885714286-0.021428571440.67971428570.1794285714-0.02250.676258992850.67627142860.1794612245-0.02163520410.179856115160.67611153060.1798546939-0.0215460459-0.021582733870.67625108670.1798729679-0.021578650780.67626491730.1798570187-0.02158410290.67625962790.179855438-0.0215829772100.67625877070.1798560425-0.0215826873

INVERSAUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELINVERSA DE UNA MATRIZ POR ELIMINACIONPOR EL METODO MATRICIAL0!100!010Ingrese matrizX^(-1)=000!0010000000000!0000000!0000000!0000000!0000000!0000000!0000000!000000!0000000!000000!0000000!000000!0000000!0000000!0000000!000000!000000!000000!000

TrapecioUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELINTEGRACION POR EL MTODO DEL TRAPECIObaIngrese los limites de integracion y el nmero de puntosn=h=0ixf(x)000100200300400500600700valor real=1.098680090010000integral=0

SimpsonUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELINTEGRACION POR EL MTODO DE SIMPSONban=Ingrese los lmites y el nmero de puntosh=0icxc*f(x)01001400220034004200540062007400valor real=1.098682009400101000integral=0

EULERUNIVERSIDAD DE SAN CARLOSFACULTAD DE CIENCIAS QUIMICAS Y FARMACIACURSO DE METODOS NUMRICOS CON EXCELSOLUCION DE PROBLEMAS DE VALOR INICIAL EN ECUACIONESbDIFERENCIALES ORDINARIAS CON EL MTODO DE EULERaIngrese los lmites y el nmero de puntosaproximar el problema de valor inicial: y=x+y, en 0= count)this.defaultTab = (count > 1) ? (count - 1) : 0;}

this.defaultTab = this.getTabs()[this.defaultTab];}

// The defaultTab property is supposed to be the tab element for the tab content// to show by default. The caller is allowed to pass in the element itself or the// element's id, so we need to convert the current value to an element if necessary.

if (this.defaultTab)this.defaultTab = this.getElement(this.defaultTab);

this.attachBehaviors();};

Spry.Widget.TabbedPanels.prototype.getElement = function(ele){if (ele && typeof ele == "string")return document.getElementById(ele);return ele;};

Spry.Widget.TabbedPanels.prototype.getElementChildren = function(element){var children = [];var child = element.firstChild;while (child){if (child.nodeType == 1 /* Node.ELEMENT_NODE */)children.push(child);child = child.nextSibling;}return children;};

Spry.Widget.TabbedPanels.prototype.addClassName = function(ele, className){if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) != -1))return;ele.className += (ele.className ? " " : "") + className;};

Spry.Widget.TabbedPanels.prototype.removeClassName = function(ele, className){if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) == -1))return;ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");};

Spry.Widget.TabbedPanels.setOptions = function(obj, optionsObj, ignoreUndefinedProps){if (!optionsObj)return;for (var optionName in optionsObj){if (ignoreUndefinedProps && optionsObj[optionName] == undefined)continue;obj[optionName] = optionsObj[optionName];}};

Spry.Widget.TabbedPanels.prototype.getTabGroup = function(){if (this.element){var children = this.getElementChildren(this.element);if (children.length)return children[0];}return null;};

Spry.Widget.TabbedPanels.prototype.getTabs = function(){var tabs = [];var tg = this.getTabGroup();if (tg)tabs = this.getElementChildren(tg);return tabs;};

Spry.Widget.TabbedPanels.prototype.getContentPanelGroup = function(){if (this.element){var children = this.getElementChildren(this.element);if (children.length > 1)return children[1];}return null;};

Spry.Widget.TabbedPanels.prototype.getContentPanels = function(){var panels = [];var pg = this.getContentPanelGroup();if (pg)panels = this.getElementChildren(pg);return panels;};

Spry.Widget.TabbedPanels.prototype.getIndex = function(ele, arr){ele = this.getElement(ele);if (ele && arr && arr.length){for (var i = 0; i < arr.length; i++){if (ele == arr[i])return i;}}return -1;};

Spry.Widget.TabbedPanels.prototype.getTabIndex = function(ele){var i = this.getIndex(ele, this.getTabs());if (i < 0)i = this.getIndex(ele, this.getContentPanels());return i;};

Spry.Widget.TabbedPanels.prototype.getCurrentTabIndex = function(){return this.currentTabIndex;};

Spry.Widget.TabbedPanels.prototype.getTabbedPanelCount = function(ele){return Math.min(this.getTabs().length, this.getContentPanels().length);};

Spry.Widget.TabbedPanels.addEventListener = function(element, eventType, handler, capture){try{if (element.addEventListener)element.addEventListener(eventType, handler, capture);else if (element.attachEvent)element.attachEvent("on" + eventType, handler);}catch (e) {}};

Spry.Widget.TabbedPanels.prototype.cancelEvent = function(e){if (e.preventDefault) e.preventDefault();else e.returnValue = false;if (e.stopPropagation) e.stopPropagation();else e.cancelBubble = true;

return false;};

Spry.Widget.TabbedPanels.prototype.onTabClick = function(e, tab){this.showPanel(tab);return this.cancelEvent(e);};

Spry.Widget.TabbedPanels.prototype.onTabMouseOver = function(e, tab){this.addClassName(tab, this.tabHoverClass);return false;};

Spry.Widget.TabbedPanels.prototype.onTabMouseOut = function(e, tab){this.removeClassName(tab, this.tabHoverClass);return false;};

Spry.Widget.TabbedPanels.prototype.onTabFocus = function(e, tab){this.hasFocus = true;this.addClassName(tab, this.tabFocusedClass);return false;};

Spry.Widget.TabbedPanels.prototype.onTabBlur = function(e, tab){this.hasFocus = false;this.removeClassName(tab, this.tabFocusedClass);return false;};

Spry.Widget.TabbedPanels.KEY_UP = 38;Spry.Widget.TabbedPanels.KEY_DOWN = 40;Spry.Widget.TabbedPanels.KEY_LEFT = 37;Spry.Widget.TabbedPanels.KEY_RIGHT = 39;

Spry.Widget.TabbedPanels.prototype.onTabKeyDown = function(e, tab){var key = e.keyCode;if (!this.hasFocus || (key != this.previousPanelKeyCode && key != this.nextPanelKeyCode))return true;

var tabs = this.getTabs();for (var i =0; i < tabs.length; i++)if (tabs[i] == tab){var el = false;if (key == this.previousPanelKeyCode && i > 0)el = tabs[i-1];else if (key == this.nextPanelKeyCode && i < tabs.length-1)el = tabs[i+1];

if (el){this.showPanel(el);el.focus();break;}}

return this.cancelEvent(e);};

Spry.Widget.TabbedPanels.prototype.preorderTraversal = function(root, func){var stopTraversal = false;if (root){stopTraversal = func(root);if (root.hasChildNodes()){var child = root.firstChild;while (!stopTraversal && child){stopTraversal = this.preorderTraversal(child, func);try { child = child.nextSibling; } catch (e) { child = null; }}}}return stopTraversal;};

Spry.Widget.TabbedPanels.prototype.addPanelEventListeners = function(tab, panel){var self = this;Spry.Widget.TabbedPanels.addEventListener(tab, "click", function(e) { return self.onTabClick(e, tab); }, false);Spry.Widget.TabbedPanels.addEventListener(tab, "mouseover", function(e) { return self.onTabMouseOver(e, tab); }, false);Spry.Widget.TabbedPanels.addEventListener(tab, "mouseout", function(e) { return self.onTabMouseOut(e, tab); }, false);

if (this.enableKeyboardNavigation){// XXX: IE doesn't allow the setting of tabindex dynamically. This means we can't// rely on adding the tabindex attribute if it is missing to enable keyboard navigation// by default.

// Find the first element within the tab container that has a tabindex or the first// anchor tag.var tabIndexEle = null;var tabAnchorEle = null;

this.preorderTraversal(tab, function(node) {if (node.nodeType == 1 /* NODE.ELEMENT_NODE */){var tabIndexAttr = tab.attributes.getNamedItem("tabindex");if (tabIndexAttr){tabIndexEle = node;return true;}if (!tabAnchorEle && node.nodeName.toLowerCase() == "a")tabAnchorEle = node;}return false;});

if (tabIndexEle)this.focusElement = tabIndexEle;else if (tabAnchorEle)this.focusElement = tabAnchorEle;

if (this.focusElement){Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "focus", function(e) { return self.onTabFocus(e, tab); }, false);Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "blur", function(e) { return self.onTabBlur(e, tab); }, false);Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "keydown", function(e) { return self.onTabKeyDown(e, tab); }, false);}}};

Spry.Widget.TabbedPanels.prototype.showPanel = function(elementOrIndex){var tpIndex = -1;if (typeof elementOrIndex == "number")tpIndex = elementOrIndex;else // Must be the element for the tab or content panel.tpIndex = this.getTabIndex(elementOrIndex);if (!tpIndex < 0 || tpIndex >= this.getTabbedPanelCount())return;

var tabs = this.getTabs();var panels = this.getContentPanels();

var numTabbedPanels = Math.max(tabs.length, panels.length);

for (var i = 0; i < numTabbedPanels; i++){if (i != tpIndex){if (tabs[i])this.removeClassName(tabs[i], this.tabSelectedClass);if (panels[i]){this.removeClassName(panels[i], this.panelVisibleClass);panels[i].style.display = "none";}}}

this.addClassName(tabs[tpIndex], this.tabSelectedClass);this.addClassName(panels[tpIndex], this.panelVisibleClass);panels[tpIndex].style.display = "block";

this.currentTabIndex = tpIndex;};

Spry.Widget.TabbedPanels.prototype.attachBehaviors = function(element){var tabs = this.getTabs();var panels = this.getContentPanels();var panelCount = this.getTabbedPanelCount();

for (var i = 0; i < panelCount; i++)this.addPanelEventListeners(tabs[i], panels[i]);

this.showPanel(this.defaultTab);};

/* /////////////////////////////////////////////////////////////////////////////// Copyright (c) 2006-2007// The Other Solutions, Inc.// USA//// All Rights Reserved//// This source file is subject to the terms and conditions of the// The Other Solutions Software License Agreement which restricts the manner// in which it may be used.// It's strictly forbidden to copy or use without // written permission unless viewed from the following web sites://www.theothersolutions.com// Mail: [email protected]/////////////////////////////////////////////////////////////////////////////////// Module name : common.js// Module ID Nbr : // Description : Javascript quoting// --------------------------------------------------------------------------// Change Record : //// VersionAuthor/DateDescription of changes// ------- -----------------------------------// 01.01HVE/06-April-22Initial release// 01.02HVE/2006-May-9spelling error in "errors" corrected// 01.03HVE/2006-May-21Added the minlength function// 01.04 HVE/2007-Apr-6Added the rateit function// End of Change Record///////////////////////////////////////////////////////////////////////////////*/

// Function argument checking function check(args,func_name) {var actual=args.length; var expected=args.callee.length; if(actual!=expected) throw Error("Wrong number of arguments in function: "+func_name+"; Expected: "+expected+"; Actually passed "+actual); } // Check for valid emailfunction checkemail(email){var e_re = /^[\w\.-]+@([\w\.-]+\.)+[\w\.-]{2,4}$/;if((email=="") || (e_re.test(email))) return true; else return false; }

// Check valid phone numberfunction checkphone(phone){var p_re=/^\(?[\d]{3}\)?[\.\-/ ]?[\d]{3}[\.\-/ ]?[\d]{4}$/if((phone=="") || (p_re.test(phone))) return true; else return false; } // function report_alert(empty_fields,errors){var msg;if( empty_fields=="" && errors=="") return true;msg ="_____________________________________________________________\n";msg+="The form was not submitted because of the following error(s).\n";msg+="Please correct these error(s) and re-submit.\n";msg+="_____________________________________________________________\n"if(empty_fields) {msg += "- The following required field(s) are empty:"+ empty_fields+"\n";}msg += errors;alert(msg);return false;}// Pad with trailing spaces to meet minimum lengthfunction minlength(parm,length){var ss=String(parm);for( var i = length-ss.length; i >0; i--) ss+=" ";return ss;}// Rate it function. Required the rateit form to be validfunction ratepage(starindex){for(var i=1; i=2){this.x=Number(arguments[0]); this.y=Number(arguments[1]);}else if(arguments.length==1){this.x=Number(arguments[0]);this.y=0;}else {this.x=0;this.y=0;}

if(this.x==undefined) this.x=0; if(this.y==undefined) this.y=0;}// Class PrototypesComplex.prototype.norm=function() { return this.x*this.x+this.y*this.y; }Complex.prototype.negate=function() { return new Complex(-this.x,-this.y); }Complex.prototype.toString=function(){ if(arguments.length0&&min_x>0)min_x=0;if(max_x0)min_y=0;if(max_yr0) { dz0=dz; dz=changedirection(dz,r0/r); r=dz.abs(); // HVE 2009-04-14 to avoid overflow if( verbose){ss+=print_dz("\tdz>5*dz0 =>Alter direction:",dz0,dz);} } r0=r*5.0; } z0=z; f0=f; fz0=fz;

// Determine the multiplication of dz step size// Inner loopfor(domain_error=true;domain_error==true;) { domain_error=false; z=Complex.sub(z0,dz); fz=p.value(z); ff=f=fz.norm(); if( verbose){ss+=print_iteration("\tNewton Step: ",z,dz,f,true);}if( verbose&&stage1==true){ss+="\tFunction value "+(f>f0?"increase=>try shorten the step":"decrease=>try multiple steps in that direction")+"\n";}

if(stage1==true) { wz=z; div2=f>f0?true:false; for(i=1;i= f ) { if( verbose){ss+= "\t : No improvement=>Discard last try step\n";} break; } f=fw; fz=fwz; z=wz; if( verbose){ss+= "\t : Improved=>Continue stepping\n"; } if(div2==true && i==2) { dz=changedirection(dz,0.5); z=Complex.sub(z0,dz);fz=p.value(z); f=fz.norm(); if( verbose){ss+=print_iteration("\t : Probably local saddlepoint=>Alter Direction: ",z,dz,f,true);} break; } } } else { // calculate the upper bound of erros using Adam's test eps=upperbound(p,z); if( verbose){ss+= "\tEnter Stage 2=>New Stop Condition: f(z)Alter direction:",dz0,dz); } if(z.real()+dz.real()!=z.real()||z.imag()+dz.imag()!=z.imag()) domain_error=true; } } // End Inner Loop trail[trail.length]=z; } // End Main loop

itertrail[itertrail.length]=trail;if(verbose){ss+= "Stop Criteria satisfied after "+itercnt+" Iterations\n";ss+=print_iteration("Final Newton",z,dz,f,true);if(itercnt>=50) ss+= "Warning: Exceed limit of Iteration steps\n" } z0=new Complex(z.real()); fz=p.value(z0); if( fz.norm()0;i--,j++){ form.eqField.value+="X"+j+"="+solutions[i].toStringShort();form.eqField.value+="\n";}}

// Print the solutionsfunction print_iteration_trail(form,coeff){ var i, it;it=coeff.it; form.eqField.value+="\nIterations trail: (q is the Convergence power for each step of the iteration.)\n";for(i=0;i0) {if(trail instanceof Complex) form.eqField.value+="["+i+"]="+trail.toStringShort()+"\n";elsefor(var j=0;j1) form.eqField.value+=" q="+coeff.qt[i][j].toFixed(2);form.eqField.value+="\n"; }}}}

// Graph the solutionsfunction graph_solution(jg,solutions,form,it){var i, co;var max_x, max_y, min_x, min_y, dx, dy;

jg.clear();jg.setPrintable(true);max_x=max_y=-Infinity;min_x=min_y=+Infinity;for(i=1;i