Академический Документы
Профессиональный Документы
Культура Документы
Métodos Numéricos
Tarea 9
Problemas de cálculo de raíces de funciones.
Catedrático: M.C. Amado Lara Rodríguez
Equipo 104
Grafica
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define f(x) (sin(x)-pow(x,2))/*Limite superior =1 Limite inferior=0.5 Valor
verdadero=0.87*/
int main(){
float Xs, Xi,es,vv,xr=0,xr2=0,p,ea=1,er,ev,i;
int resp,termino=1,N;
printf("Ingrese valor del limite superior:\n");
scanf("%f",&Xs);
printf("Ingrese valor del limite inferior:\n");
scanf("%f",&Xi);
printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);
printf("¿Se conoce el valor verdadero?\n si=1\n no=2\n");
scanf("%d",&resp);
es=(0.5*pow(10,2-N));
printf("La tolerancia es: %f\n",es);
if(resp==1){
printf("ingresa el valor verdadero\n");
scanf("%f",&vv);
printf ("El valor verdadero es: %f\n",vv);
printf("Termino Xi Xs xr er ea\n");
}
else
printf("Termino Xi Xs xr ea\n");
for (i=1;fabs(ea)>=es;i++){
xr=(Xi+Xs)/2;
if(resp==1){
ev=vv-xr;
er=(ev/vv)*100;
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf(" %5d %5.5f %5.5f %5.5f %5.5f %5.5f
\n",termino,Xi,Xs,xr,fabs(er),fabs(ea));
}
if (i<=1) {
printf(" %5d %5.5f %5.5f %5.5f
%5.5f\n",termino,Xi,Xs,xr,fabs(er));
}
}
else{
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf("%5d %5.5f %5.5f %5.5f %5.5f \n",termino,Xi,Xs,xr,fabs(ea));
}
if (i<=1) {
printf("%5d %5.5f %5.5f %5.5f\n",termino,Xi,Xs,xr);
}
p=f(xr)*f(Xi);
if(p<0)
{
Xs=xr;
}
if(p>0)
{
Xi=xr;
}
if(p==0){
printf("La raíz es: %f",xr);
break;
}
xr2=xr;
termino ++;
return 0;
}
Ejercicio 5.6
a) Gráficamente
p=f(xr)*f(Xi);
if(p<0)
{
Xs=xr;
}
if(p>0)
{
Xi=xr;
}
if(p==0){
printf("La raíz es: %f",xr);
break;
}
xr2=xr;
termino ++;
return 0;
}
c) Utilizando el método de falsa posición
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define f(x) (log(pow(x,2))-0.7)//Limite superior =2 Limite inferior=0.5 Valor
verdadero=1.4190
int main(){
float Xs, Xi,es,vv,xr=0,xr2=0,p,ea=1,er,ev,i,Ls=1,is=1,fi,fs,iu,fr;
int resp,termino=1,N;
printf("Ingrese valor del limite superior:\n");
scanf("%f",&Xs);
printf("Ingrese valor del limite inferior:\n");
scanf("%f",&Xi);
printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);
printf("¿Se conoce el valor verdadero?\n si=1\n no=2\n");
scanf("%d",&resp);
es=(0.5*pow(10,2-N));
if(resp==1){
printf("ingresa el valor verdadero\n");
scanf("%f",&vv);
printf ("El valor verdadero es: %f\n",vv);
printf("La tolerancia es: %f\n",es);
printf("Termino Xi Xs xr er ea f(Xi)
f(Xr) \n");
}
else
printf("Termino Xi Xs xr ea f(Xi) f(Xr)\n");
fs=f(Xs);
fi=f(Xi);
for (i=1;fabs(ea)>=es;i++){
xr=Xs-((fs*(Xi-Xs))/(fi-fs));
fr=f(xr);
if(resp==1){
ev=vv-xr;
er=(ev/vv)*100;
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf(" %5d %5.5f %5.5f %5.5f %5.5f %5.5f %10.5f %
10.5f\n",termino,Xi,Xs,xr,fabs(er),fabs(ea),fi,fr);
}
if (i<=1) {
printf(" %5d %5.5f %5.5f %5.5f %5.5f %10.5f
%10.5f\n",termino,Xi,Xs,xr,fabs(er),fi,fr);
}
}
else{
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf("%5d %5.5f %5.5f %5.5f %5.5f %5.5f %5.5f
\n",termino,Xi,Xs,xr,fabs(ea),fi,fr);
}
if (i<=1) {
printf("%5d %5.5f %5.5f %5.5f %5.5f
%5.5f\n",termino,Xi,Xs,xr,fi,fr);
}
}
p=fr*fi;
if(p<0)
{
Xs=xr;
fs=f(Xs);
Ls=Ls+1;
if(Ls>=3){
fi=fi/2;
}
}
if(p>0)
{
Xi=xr;
fi=f(Xi);
is=is+1;
if(is>=3){
fs=fs/2;
}
}
if(p==0){
printf("La raíz es: %f",xr);
break;
}
xr2=xr;
termino ++;
}
return 0;
}
Ejercicio 5.7
a) Analíticamente
0.8−0.3 x 0.8
=0 =x x=2.66
x 0.3
b) Gráficamente
}
p=fr*fi;
if(p<0)
{
Xs=xr;
fs=f(Xs);
Ls=Ls+1;
if(Ls>=3){
fi=fi/2;
}
}
if(p>0)
{
Xi=xr;
fi=f(Xi);
is=is+1;
if(is>=3){
fs=fs/2;
}
}
if(p==0){
printf("La raíz es: %f",xr);
break;
}
xr2=xr;
termino ++;
}
return 0;
}
Ejercicio 5.9
Encuentre la raíz positiva más pequeña de la función (x está en radianes) x 2|cos√ x
|=5 usando el método de la falsa posición. Para localizar el intervalo en donde se
encuentra la raíz, grafique primero esta función para valores de x entre 0 y 5.
Realice el cálculo hasta que ea sea menor que es = 1%. Compruebe su respuesta
final sustituyéndola en la función original.
Función es x2|cos√ x|-5
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define f(x) (pow(x,2)*fabs(cos(sqrt(x)))-5)/*Limite superior =4 Limite inferior=2
Valor verdadero=3.7452*/
//Ejercicio 5.9
int main(){
float Xs, Xi,es,vv,xr=0,xr2=0,p,ea=1,er,ev,i;
int resp,termino=1,N;
printf("Ingrese valor del limite superior:\n");
scanf("%f",&Xs);
printf("Ingrese valor del limite inferior:\n");
scanf("%f",&Xi);
printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);
printf("¿Se conoce el valor verdadero?\n si=1\n no=2\n");
scanf("%d",&resp);
es=(0.1*pow(10,2-N));
printf("La tolerancia es: %f\n",es);
if(resp==1){
printf("ingresa el valor verdadero\n");
scanf("%f",&vv);
printf ("El valor verdadero es: %f\n",vv);
printf("Termino Xi Xs xr er ea\n");
}
else
printf("Termino Xi Xs xr ea\n");
for (i=1;fabs(ea)>=es;i++){
xr=(Xi+Xs)/2;
if(resp==1){
ev=vv-xr;
er=(ev/vv)*100;
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf(" %5d %5.5f %5.5f %5.5f %5.5f %5.5f
\n",termino,Xi,Xs,xr,fabs(er),fabs(ea));
}
if (i<=1) {
printf(" %5d %5.5f %5.5f %5.5f
%5.5f\n",termino,Xi,Xs,xr,fabs(er));
}
}
else{
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf("%5d %5.5f %5.5f %5.5f %5.5f \n",termino,Xi,Xs,xr,fabs(ea));
}
if (i<=1) {
printf("%5d %5.5f %5.5f %5.5f\n",termino,Xi,Xs,xr);
}
p=f(xr)*f(Xi);
if(p<0)
{
Xs=xr;
}
if(p>0)
{
Xi=xr;
}
if(p==0){
printf("La raíz es: %f",xr);
break;
}
xr2=xr;
termino ++;
return 0;
}
Ejercicio 5.13
La velocidad v de un paracaidista que cae está dada
c
gm −( )t
v= ( 1−e m )
c
Donde g = 9.8 m/s2. Para un paracaidista con coeficiente de arrastre de c = 15
kg/s, calcule la masa m de modo que la velocidad sea v = 35 m/s en t = 9s. Utilice
el método de la falsa posición para determinar m a un nivel de es = 0.1%.
#include<stdio.h>
#include<math.h>
int main(){
float Xs,
Xi,g=9.8,v=35,c=15,t=9,m,es,vv,xr=0,xr2=0,p,ea=1,er,ev,i,Ls=1,is=1,fi,fs,iu,fr;
int resp,termino=1,N;
scanf("%f",&Xs);
scanf("%f",&Xi);
/*printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);*/
scanf("%d",&resp);
/*es=(0.5*pow(10,2-N));*/
es=0.1;
if(resp==1){
scanf("%f",&vv);
printf("Termino Xi Xs xr er ea f(Xi)
f(Xr) \n");
else
fs=f(Xs);
fi=f(Xi);
for (i=1;fabs(ea)>=es;i++){
xr=Xs-((fs*(Xi-Xs))/(fi-fs));
fr=f(xr);
if(resp==1){
ev=vv-xr;
er=(ev/vv)*100;
ea=((xr-xr2)/xr)*100;
if (i > 1) {
printf(" %5d %5.5f %5.5f %5.5f %5.5f %5.5f %10.5f %
10.5f\n",termino,Xi,Xs,xr,fabs(er),fabs(ea),fi,fr);
if (i<=1) {
else{
ea=((xr-xr2)/xr)*100;
if (i > 1) {
if (i<=1) {
p=fr*fi;
if(p<0)
Xs=xr;
fs=f(Xs);
Ls=Ls+1;
if(Ls>=3){
fi=fi/2;
if(p>0)
Xi=xr;
fi=f(Xi);
is=is+1;
if(is>=3){
fs=fs/2;
if(p==0){
break;
xr2=xr;
termino++;
return 0;
}
Ejercicio 6.3
b) Newton Raphson
#include<stdio.h>
#include<math.h>
#define f(x) (-(pow(x,2))+(1.8*x)+2.5)
#define g(x) (-2*x+1.8)
int main(){
float X0,Xi=0,Xi1=0,es,vv,p,ea=1,er,ev,i,max=100;
int resp,termino=0,N;
printf("Ingrese el primer valor:\n");
scanf("%f",&X0);
/*printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);*/
printf("¿Se conoce el valor verdadero?\n si=1\n no=2\n");
scanf("%d",&resp);
/*es=(0.5*pow(10,2-N));*/
es=0.05;
if(resp==1){
printf("ingresa el valor verdadero\n");
scanf("%f",&vv);
printf ("El valor verdadero es: %f\n",vv);
printf("La tolerancia es: %f\n",es);
printf("Termino Xi1 er ea \n");
}
else
printf("Termino Xi1 ea \n");
for (i=1;fabs(ea)>=es&&termino<max;i++){
Xi1=Xi-(f(Xi)/g(Xi));
if(resp==1){
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
ev=vv-Xi1;
er=(ev/vv)*100;
printf("%5d %5.5f %5.5f %5.5f
\n",termino,Xi1,fabs(er),fabs(ea));
}
if (termino<=0) {
Xi1=X0;
ev=vv-Xi1;
er=(ev/vv)*100;
printf("%5d %5f %5f \n",termino,Xi1,fabs(er));
}
}
else{
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
Ejercicio 6.6
Determine la raíz real más pequeña de f(x) = –12 – 21x + 18x 2 – 2.4x3 : a) en
forma gráfica, y b) con el empleo del método de la secante para un valor de es que
corresponda a tres cifras significativas.
a) Gráficamente
b) Método de la secante
#include <stdio.h>
#include <math.h>
#define f(x) (-12-21*x+18*pow(x,2)-2.4*pow(x,3))
/*Programa de metodo de la secante*/
//Ejercicio 6.6
int main (){
int in,contado,intermax=100,n,resp,i,termino=1;
float xi,es,vv,ea=1,er,xi1=0,ev,xi2;
printf ("Ingresa el valor de superior\n");
scanf("%f",&xi);
printf("Ingresa el valor de inferior\n");
scanf("%f",&xi2);
printf("Cifra significativa\n");
scanf("%d",&n);
es=0.5*pow(10,2-n);
printf("Tolerancia %f\n",es);
printf("Conoces el valor verdadero? Si=1 No=2\n");
scanf("%d",&resp);
if(resp==1){
printf ("El valor verdadero es\n");
scanf("%f",&vv);
printf ("Interracion xi-1 xi xi+1 er ea \n");
}
else
printf ("Interacion xi-1 xi ea \n");
for(i=1;fabs(ea)>=es && termino<=intermax;i++){
xi1=xi-(f(xi)*(xi2-xi)/(f(xi2)-f(xi)));
if(resp==1){
ea=((xi1-xi)/xi1)*100;
if(termino>1){
ev=vv-xi1;
er=(ev/vv)*100;
printf ("%5d %8.5f %5.5f %5.5f %5.5f
%5.5f\n",termino,xi2,xi,xi1,fabs(er),fabs(ea));
}
if(termino<=1){
ev=vv-xi1;
er=(ev/vv)*100;
printf ("%5d %8.5f %5.5f %5.5f %5.5f\n",termino,xi2,xi,xi1,fabs(er));
}
}
else {
ea=((xi1-xi)/xi1) *100;
if(termino>1){
printf ("%5d %8.5f %5.5f %5.5f %5.5f
%5.5f\n",termino,xi2,xi,xi1,fabs(er),fabs(ea));
}
if(termino<=1){
printf ("%5d %8.5f %5.5f %5.5f %5.5f\n",termino,xi2,xi,xi1,fabs(er));
}
}
xi2=xi;
xi=xi1;
termino++;
}
return 0;
}
Ejercicio 6.9
Determine la raíz real más grande de f(x) = 0.95x 3 – 5.9x2 + 10.9x – 6: a) En forma
gráfica. b) Con el uso del método de Newton-Raphson (tres iteraciones, xi = 3.5).
c) Con el método de la secante (tres iteraciones, xi–1 = 2.5 y xi = 3.5). d) Por
medio del método de la secante modificado (tres iteraciones, xi = 3.5, d = 0.01)
a) En forma gráfica
.
}
c) Método del secante
#include <stdio.h>
#include <math.h>
#define f(x) (0.95*pow(x,3)-5.9*pow(x,2)+10.9*x-6)
/*Programa de metodo de la secante*/
//Ejercicio 6.9
int main (){
int in,contado,intermax=3,n,resp,i,termino=1;
float xi,es,vv,ea=1,er,xi1=0,ev,xi2;
printf ("Ingresa el valor de superior\n");
scanf("%f",&xi);
printf("Ingresa el valor de inferior\n");
scanf("%f",&xi2);
printf("Cifra significativa\n");
scanf("%d",&n);
es=0.5*pow(10,2-n);
printf("Tolerancia %f\n",es);
printf("Conoces el valor verdadero? Si=1 No=2\n");
scanf("%d",&resp);
if(resp==1){
printf ("El valor verdadero es\n");
scanf("%f",&vv);
printf ("Interracion xi-1 xi xi+1 er ea \n");
}
else
printf ("Interacion xi-1 xi ea \n");
for(i=1;fabs(ea)>=es && termino<=intermax;i++){
xi1=xi-(f(xi)*(xi2-xi)/(f(xi2)-f(xi)));
if(resp==1){
ea=((xi1-xi)/xi1)*100;
if(termino>1){
ev=vv-xi1;
er=(ev/vv)*100;
printf ("%5d %8.5f %5.5f %5.5f %5.5f
%5.5f\n",termino,xi2,xi,xi1,fabs(er),fabs(ea));
}
if(termino<=1){
ev=vv-xi1;
er=(ev/vv)*100;
printf ("%5d %8.5f %5.5f %5.5f %5.5f\n",termino,xi2,xi,xi1,fabs(er));
}
}
else {
ea=((xi1-xi)/xi1) *100;
if(termino>1){
printf ("%5d %8.5f %5.5f %5.5f %5.5f
%5.5f\n",termino,xi2,xi,xi1,fabs(er),fabs(ea));
}
if(termino<=1){
printf ("%5d %8.5f %5.5f %5.5f %5.5f\n",termino,xi2,xi,xi1,fabs(er));
}
}
xi2=xi;
xi=xi1;
termino++;
}
return 0;
}
d) Método de secante modificado
#include <stdio.h>
#include <math.h>
#define f(x) (0.95*pow(x,3)-(5.9*pow(x,2))+(10.9*x)-6)
#define g(x) (2.85*pow(x,2)-(11.8*x)+10.9)
#define u(x) (f(x)/g(x))
/*Programa de metodo de la secante modificado*/
int main (){
int in,contado,intermax=3,n,resp,i,termino=1;
float xi,es,vv,ea=1,er,xi1=0,ev,xi2;
printf ("Ingresa el valor de superior\n");
scanf("%f",&xi);
printf("Ingresa el valor de inferior\n");
scanf("%f",&xi2);
/*printf("Cifra significativa\n");
scanf("%d",&n);
es=0.5*pow(10,2-n);*/
es=0.01;
/*printf("Tolerancia %f\n",es);*/
printf("Conoces el valor verdadero? Si=1 No=2\n");
scanf("%d",&resp);
if(resp==1){
printf ("El valor verdadero es\n");
scanf("%f",&vv);
printf ("Interracion xi-1 xi xi+1 er ea \n");
}
else
printf ("Interacion xi-1 xi xi+1 ea \n");
for(i=1;fabs(ea)>=es && termino<=intermax;i++){
xi1=xi-(u(xi)*(xi2-xi)/(u(xi2)-u(xi)));
if(resp==1){
ea=((xi1-xi)/xi1)*100;
if(termino>1){
ev=vv-xi1;
er=(ev/vv)*100;
printf ("%5d %8.5f %5.5f %5.5f %5.5f
%5.5f\n",termino,xi2,xi,xi1,fabs(er),fabs(ea));
}
if(termino<=1){
ev=vv-xi1;
er=(ev/vv)*100;
printf ("%5d %8.5f %5.5f %5.5f %5.5f\n",termino,xi2,xi,xi1,fabs(er));
}
}
else {
ea=((xi1-xi)/xi1) *100;
if(termino>1){
printf ("%5d %8.5f %5.5f %5.5f %5.5f \n",termino,xi2,xi,xi1,fabs(ea));
}
if(termino<=1){
printf ("%5d %8.5f %5.5f %5.5f\n",termino,xi2,xi,xi1);
}
}
xi2=xi;
xi=xi1;
termino++;
}
return 0;
}
Ejercicio 6.11
La función x3 + 2x2 – 4x + 8 tiene una raíz doble en x = 2. Emplee a) el método
estándar de Newton-Raphson [ec. (6.6)], b) el método de Newton-Raphson
modificado [ec. (6.9a)], y c) el método de Newton-Raphson modificado [ec. (6.13)]
para resolver para la raíz en x = 2. Compare y analice la tasa de convergencia con
un valor inicial x0 = 1.2.
Gráfica
Xi=Xi1;
termino++;
}
return 0;
}
c) Método Newton Raphson modificado (ec.6.13)
#include<stdio.h>
#include<math.h>
#define f(x) ((pow(x,3))+(2*(pow(x,2)))-(4*x)+8)
#define g(x) ((3*(pow(x,2)))+(4*x)-4)
#define p(x) ((6*x)+4)
int main(){
float X0,Xi=0,Xi1=0,es,vv,p,ea=1,er,ev,i,max=3,m=2,fi,gi,pi;
int resp,termino=0,N;
printf("Ingrese el primer valor:\n");
scanf("%f",&X0);
printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);
printf("¿Se conoce el valor verdadero?\n si=1\n no=2\n");
scanf("%d",&resp);
es=(0.5*pow(10,2-N));
if(resp==1){
printf("ingresa el valor verdadero\n");
scanf("%f",&vv);
printf ("El valor verdadero es: %f\n",vv);
printf("La tolerancia es: %f\n",es);
printf("Termino Xi1 er ea \n");
}
else
printf("Termino Xi1 ea \n");
for (i=1;fabs(ea)>=es&&termino<max;i++){
fi=f(Xi);
gi=g(Xi);
pi=p(Xi);
Xi1=Xi-((fi*gi)/((pow(gi,2))-(fi*pi)));
if(resp==1){
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
ev=vv-Xi1;
er=(ev/vv)*100;
printf("%5d %5.9f %5.9f %5.9f
\n",termino,Xi1,fabs(er),fabs(ea));
}
if (termino<=0) {
Xi1=X0;
ev=vv-Xi1;
er=(ev/vv)*100;
printf("%5d %5.9f %5.9f \n",termino,Xi1,fabs(er));
}
}
else{
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
Xi=Xi1;
termino++;
}
return 0;
}
Ejercicio 6.26
Suponga el lector que está diseñando un tanque esférico (véase la figura P6.26)
de almacenamiento de agua para un poblado pequeño de un país en desarrollo. El
volumen del líquido que puede contener se calcula con
V =πh2 [(3R-h) /3]
donde V = volumen [pie3], h = profundidad del agua en el tanque [pies], y R =
radio del tanque [pies]. Si R = 3 m, ¿a qué profundidad debe llenarse el tanque de
modo que contenga 30 m3? Haga tres iteraciones del método de Newton Raphson
para determinar la respuesta. Encuentre el error relativo aproximado después de
cada iteración. Observe que el valor inicial de R convergerá siempre.
#include<stdio.h>
#include<math.h>
#define PI 3.14159
#define f(h) ((PI*(pow(h,3)))-(9*PI*(pow(h,2)))+(90))
#define g(h) ((3*PI*(pow(h,2)))-(18*PI*h))
int main(){
float X0,Xi,Xi1=0,es,vv,p,ea=1,er,ev,i,A,r=3,v=30,max=3,h;
int resp,termino=0,N;
A=(PI/4)*(pow(2*r,2)); /*sacamos el área para poder sacar el valor de h1 ya que si
no se saca se indetermina la funcion*/
Xi=(v/A)*3.2808;/*Se multiplica por 3.2808 para pasar de metros a pies*/
printf("Ingrese el primer valor:\n");
scanf("%f",&X0);
/*printf("Ingrese el numero de cifras significativas \n");
scanf("%d",&N);*/
printf("¿Se conoce el valor verdadero?\n si=1\n no=2\n");
scanf("%d",&resp);
/*es=(0.5*pow(10,2-N));*/
es=0.05;
printf("area es: %f\n ",A);
printf("El valor inicial de h es: %f\n ",Xi);
if(resp==1){
printf("ingresa el valor verdadero\n");
scanf("%f",&vv);
printf ("El valor verdadero es: %f\n",vv);
printf("La tolerancia es: %f\n",es);
printf("Termino Xi1 er ea \n");
}
else
printf("Termino Xi1 ea \n");
for (i=1;fabs(ea)>=es&&termino<max;i++){
Xi1=Xi-(f(Xi)/g(Xi));
if(resp==1){
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
ev=vv-Xi1;
er=(ev/vv)*100;
printf("%5d %5.5f %5.5f %5.5f \n",termino,Xi1,fabs(er),fabs(ea));
}
if (termino<=0) {
Xi1=X0;
ev=vv-Xi1;
er=(ev/vv)*100;
printf("%5d %5f %5f \n",termino,Xi1,fabs(er));
}
}
else{
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
H2O → H2 + 1/ 2 O2
Si se asume que ésta es la única reacción que se lleva a cabo, la fracción molar x
de H2o que se disocia se representa por
x 2 pt
K=
1−x √ 2+ x
#include<stdio.h>
#include<math.h>
int main(){
float X0,Xi=0,Xi1=0,es,vv,p,ea=1,er,ev,i,max=100;
int resp,termino=0,N;
scanf("%f",&X0);
scanf("%d",&N);
scanf("%d",&resp);
es=(0.5*pow(10,2-N));
if(resp==1){
scanf("%f",&vv);
else
for (i=1;fabs(ea)>=es&&termino<max;i++){
Xi1=Xi-(f(Xi)/g(Xi));
if(resp==1){
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
ev=vv-Xi1;
er=(ev/vv)*100;
if (termino<=0) {
Xi1=X0;
ev=vv-Xi1;
er=(ev/vv)*100;
else{
ea=((Xi1-Xi)/Xi1)*100;
if (termino > 0) {
if (termino<=0) {
Xi1=X0;
Xi=Xi1;
termino++;
}
return 0;
}
Problema 8.5
2A+B→C
cc
k=
c 2a cb
(c c ,0 + x )
k=
(c a , 0−2 x)2 (c b ,0 + x )