Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2004, 16:05
Avatar de TCL_ZIP
TCL_ZIP
 
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 20 años, 5 meses
Puntos: 4
Teorema de bolzano

Aplicando el teorema de bolzano, he programado un script que sirve para poder encontrar solución a ecuaciones que no se pueden responder ya que dan con decimales, dejo aquí mi codigo:
Código PHP:
<?
if(!$_POST['calcular']){ } else {
    
// Començam la programacio
    
$valor  $_POST['valor'] ;
    
$interval  $_POST['interval'];
    
$Equ_1 $_POST['Equ_1'];
    
$Equ_2 $_POST['Equ_2'];
    
$Equ_3 $_POST['Equ_3'];
    
$Equ_4 $_POST['Equ_4'];
    
// Calculam si el valor es negatiu o positiu
    
$Eq_I = ($Equ_1*$valor*$valor*$valor)+($Equ_2*$valor*$valor)+($Equ_3*$valor)+$Equ_4 ;
    if(
$Eq_I 0){ 
        
// si es positiu la definim amb la variable $var_pos
        
$var_pos $valor ;
        
// i cercam un altre valor que sigui negatiu
        
$X $valor+$interval ;
        
$Eq_2 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
        if(
$Eq_1 0){
            
//si aquest segon valor es negatiu el definim
            
$var_neg $X;
        } else {
            
//si no es negatiu anam sumant l'interval fins que ens surti un negatiu
            
$X $X+$interval ;
            
$Eq_2 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
            for(
$i ;$Eq_2 0;){
                if(
$i 40){
                    
$X $X+$interval ;
                    
$Eq_2 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
                    
$i $i+1;
                } else { 
                    
$X $X-$interval ;
                    
$Eq_2 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
                    
$i $i+1;                
                }
            
            }
            
$var_neg $X;
        }
        
    } elseif(
$Eq_I 0) { 
        
// si amb el valor inicial es negatiu la definim com a $var_neg
        
$var_neg $valor;
        
// i cercam un altre valor que sigui positiu
        
$X $valor+$interval ;
        
$Eq_1 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
        if(
$Eq_1 0){
            
//si aquest segon valor es positiu el definim
            
$var_pos $X;
        } else {
            
//si no es positiu anam sumant l'interval fins que ens surti un negatiu
            
$X $X+$interval ;
            
$Eq_1 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
            for(
$i ;$Eq_1 0;){
                if(
$i 40){
                    
$X $X+$interval ;
                    
$Eq_1 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
                    
$i $i+1;
                } else { 
                    
$X $X-$interval ;
                    
$Eq_1 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
                    
$i $i+1;                
                }
            
            }
            
$var_pos $X;
        }
    }
    
//ficam un parell de decimals
    
for($i=0;$i<20;$i++){
        
$X = ($var_pos+$var_neg)/;
        
$Eq_4 = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
        if(
$Eq_4 0){
            
$var_pos $X ;
        }else{
            
$var_neg $X ;
        }
    }
//fin
}
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Teorema de bolzano</title>
<style type="text/css">
<!--
.Estilo1 {
    color: #FF0000;
    font-weight: bold;
}
body {
    background-color: #FFFF99;
}
.Estilo2 {color: #003300}
-->
</style>
</head>

<body>
 <? if($error){ ?><div align="center" class="Estilo1">Error: <? echo $error ?>
 </div> <? ?>
<form name="form1" method="post" action="index.php">
  <p align="center">
    <input name="Equ_1" type="text" id="Equ_1" size="4">
    x<sup>3</sup>    
    +
    <input name="Equ_2" type="text" id="Equ_2" size="4">
    x<sup>2</sup>
    +
    <input name="Equ_3" type="text" id="Equ_3" size="4">
    x 
    +
    <input name="Equ_4" type="text" id="Equ_4" size="4">
  </p>
  <p align="center">
    Valor inicial: 
      <input name="valor" type="text" id="valor" size="5"> 
      Interval:
      <input name="interval" type="text" id="interval" size="5">
  </p>
  <p align="center">
    <input name="calcular" type="submit" id="calcular" value="Calcular">
</p>
</form><div align="center" class="Estilo2">
  <strong>
  <?  if($var_neg){
 
$X $var_pos;
 
$x_pos = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
 
$X $var_neg ;
 
$x_neg = ($Equ_1*$X*$X*$X)+($Equ_2*$X*$X)+($Equ_3*$X)+$Equ_4 ;
echo 
"var pos :".$var_pos." amb valor: ".$x_pos."<br>" 
echo 
"var neg :".$var_neg." amb valor: ".$x_neg."" 
}
?>
    </strong></div>
<div align="center">
  <p class="Estilo2"><strong>
    <? 
  
if($var_neg){
  echo 
$var_neg ?>
  &lt;X&lt;<? echo $var_pos; }?></strong></p>
  <p class="Estilo2">La programaci&oacute; d'aquesta web, ha estat programada per el webmaster: Josep Bernat Llaneras (TCL_ZIP)</p>
  <p class="Estilo2">De la empresa <a href="http://www.ash.es">ASH</a> </p>
  <p class="Estilo2"><a href="http://www.esporlesbc.com">http://www.esporlesbc.com</a></p>
  <p class="Estilo2"><a href="http://www.bitruband.tk">http://www.bitruband.tk</a></p>
  <p class="Estilo2"><a href="http://www.cataloniarock.com">http://www.cataloniarock.com</a></p>
  <p class="Estilo2"><a href="http://www.joventesporleri.com">http://www.joventesporleri.com</a></p>
  <p class="Estilo2">&nbsp;</p>
  <p>&nbsp; </p>
</div>
<div align="center"></div>
</body>
</html>