Ponpa bati eusten dion sokaren forma

prev.gif (1231 bytes)home.gif (1232 bytes)next.gif (1211 bytes)

Fluidoak

Gainazal-tentsioa
Tantak: Tate-ren legea
Gainazalen kurbadurak
eragindako presioa
Gainazal-tentsioa 
xaboi ponpa batean (I)
Gainazal-tentsioa
xaboi-ponpa batean (II)
Burbuilaren metodoa
Fenomeno kapilarrak
marca.gif (847 bytes)Ponpa bati eusten
dion sokaren forma
Soka baten elementu baten oreka-baldintza

Sokaren forma deskribatzen duen ekuazioa

Konfigurazio lineala

Konfigurazioa ahurra

Konfigurazio ganbila

Saiakuntza

Erreferentzia

Programazio-kodea

 

Aurreko kapitulu batean aztertu dugu nolako forma hartzen duen bi muturretatik eskegitako kate batek (katenaria), ba kapitulu honetan aztertuko dugu nolako forma hartuko duen soka batek, baldin eta sokak inguratzen duen azalera osoa likido xaboitsu batez betetzen bada.

Ikusiko dugunez, sokaren forma koefiziente batek baldintzatuko du: gainazal-tentsioaren (2σ) eta sokaren luzera unitateko pisuaren (λg) arteko zatidura. Gainazal-tentsioa nagusi denean, sokak forma ganbila dauka, γ letra grekoaren antzekoa (azpiko irudiaren eskumakoa). Aldiz, pisua nagusi denean, sokak katenaria distortsionatu baten forma dauka (ezkerrekoa). Justu biak berdinak direnean, sokak V lineal baten forma dauka (erdikoa).

Adibide honetan praktikatzen dira kalkulu integrala, prozedura numerikoak eta funtzioen adierazpen grafikoa. Programatzaile batentzat oso interesgarria da herentzia eta polimorfismoa aplikatzen direlako. Oinarrizko klase abstraktuan ekuazio transzendente baten erroa kalkulatzen duen prozedura bat definitzen da, eta eratorritako klaseetan tratatzen dira egoera fisiko konplexu honetan agertzen diren kasuetako bakoitza.

Sokaren elementu baten oreka-baldintza

Soka elastiko uniforme batek 2L luzera dauka eta bi muturretatik lotuta dago altuera bereko bi puntutan. Bi puntuen arteko distantzia 2x0 da, irudiak erakusten duen bezala. Sokaren forma simetrikoa da Y ardatzarekiko, beraz, erdia soilik aztertu behar dugu, x≥0 aldea.

Sokaren elementu batek (ds) lau indar jasaten ditu:

  • Pisua, λg·ds, non λ luzera unitateko masa den edo dentsitate lineala.

  • 2σ·ds, gainazal-tentsioari dagokion indarra, non σ likido xaboitsuaren gainazal-tentsioaren koefizientea den. 2 faktorea biderkatzen da likido xaboitsuak bi alde dituelako, atzekoa eta aurrekoa.

  • T+dT, sokaren ds elementuak eskumatik jasaten duen indarra eta, θ+dθ, indar horrek horizontalarekin osatzen duen angelua.

  • T, sokaren elementuak ezkerretik jasaten duena, eta θ horizontalarekin osatzen duen angelua.

Honako kasu-motak gerta daitezke (ikusi irudia):

  • Gainazal-tentsioak egindako indarra (2σ·ds : irudian urdina) handiagoa bada, pisuaren osagai normala baino (gorria: λg·ds·cosθ), orduan sokaren elementuak jasaten duen indar erresultantea barrurantz doa eta sokak forma ganbila hartuko du (kurbadura negatiboa).

  • Gainazal-tentsioak egindako indarra (urdina) txikiagoa bada, pisuaren osagai normala baino (gorria), orduan sokaren elementuak jasaten duen indar erresultantea kanporantz doa eta sokak forma ahurra hartuko du (kurbadura positiboa).

  • Bi indarrak justu berdinak direnean, sokaren forma zuzena da, ez ganbila eta ez ahurra (kurbadura nulua).

Oreka baldintzak:

  • Norabide tangentzialean:

(T+dT)cos() =T+λg·ds·sinθ
dT
= λg·ds·sinθ                                                       (1)

  • Norabide normalean:

(T+dT)sin(dθ)+2σ·ds =λg·ds·cosθ
T·dθ
+2σ·ds =λg·ds·cosθ

                   (2)

Irudiak erakusten du ds/dθ zatiduraren esangura: bi zuzen tangenteek (gorriek) osatzen duten angelua da; bata tangentea s posizioan eta bestea s+ds posizioan. Era berean, da bi norabide normalek (urdinek) osatzen duten angelua. Bi normalak C puntuan mozten dira, kurbadura-zentro deritzona, eta ρ kurbadura-erradioa da: ds=ρ·dθ. Kurba ahurra bada, irudikoa bezalakoa, positiboa da aldiz, kurba ganbila bada negatiboa.

Azter dezagun (2) adierazpena: θ angelua 0≤θ≤π/2 bitartekoa da beraz, 0<cosθ<1. Bestalde, sokaren T tentsioak beti izan behar du positiboa:

  • Baldin α>1, orduan, T positiboa izateko, ds/dθ<0, beraz, sokak forma ganbila hartuko du.

  • Baldin α<1, hiru aukera daude:

  • Baldin cosθ>α  orduan, T positiboa izateko, ds/dθ>0, sokaren forma ahurra da.

  • Baldin cosθ<α  orduan, T positiboa izateko, ds/dθ<0, sokaren forma ganbila da.

  • Baldin cosθ=α  orduan, ds/dθ=0, sokaren forma zuzena da.

Hala ere, θ angelua aldakorra da sokan zehar, eta deskribapen hori ez da nahikoa.

Sistema fisiko honen parametro inportanteenak honakoak dira: α=2σ/λg, eta x0/L . Sokaren muturren arteko separazioa (2x0) zati sokaren luzera (2L).

  • Konfigurazio linealean, θ konstantea da eta cosθ=x0/L.  Beraz konfigurazio hau lortzeko α=x0/L.

  • Konfigurazio ganbila lortzen da α>cosθ denean, (π/2<θ<θ0), eta θ0 deitu diogu sokaren tangenteari x0 muturrean. Horren baliokidea da α>x0/L.

  • Konfigurazio ahurra lortzen da α<cosθ denean, (0<θ<θ0). Horren baliokidea da α<x0/L.

 

Sokaren forma deskribatzen duen ekuazioa

Oreka-baldintzan betetzen diren bi ekuazioak, (1) eta (2) elkarrekin zatituz:

Eta integratuz:

C konstantea mugalde baldintzetatik kalkulatu behar da.

bakanduz eta (2) ekuazioan ordezkatuz:

Kontutan izan, osagai cartesiarrak:

dx=ds·cosθ
dy=ds
·sinθ

Ekuazio diferentzial bi lortzen dira kurbaren osagai cartesiarrentzat θ parametroaren menpe:

Ondoren, bi ekuazioak integratuko ditugu:

Bigarrena berehala integratzen da:

cy integrazio-konstante bat da, ondoren kalkulatuko dugu, mugalde baldintzatik.

Ekuazio horretan aldagaia aldatzen badugu:

Eta aldagai-aldaketa desegin:

                      (3)

Lehen integrala ebaztea, berriz, zailagoa da:

cx integrazio-konstante bat da, ondoren kalkulatuko dugu, mugalde baldintzatik.

Aldagai aldaketa, hasteko:

Eta integrala honela berridazten da:

Adierazpen horrek hiru kasu ezberdin ditu: α>1, α<1 eta α=1. Kasu horietako bakoitzak integrakizun ezberdina ematen du, ondoren ikusiko dugun bezala:

α>1 kasua:

Dei diezaiogun . Orduan:

Lehen integrala berehalakoa da eta bigarrena zatika integra daiteke:

Emaitza hau da:

Orain, aldaketak desegin, β parametroa α-ren menpe adierazi eta t adieraz daiteke θ angeluaren menpe.

Azken emaitza hau da:

                             (4)

α<1 kasua:

Dei diezaiogun oraingoan . Orduan:

Lehen integralaren emaitza hau da:

Bigarrena, zatika integra daiteke:

Hona hemen emaitza:

Orain, aldaketak desegin, β parametroa α-ren menpe adierazi eta t adieraz daiteke θ angeluaren menpe.

Azken emaitza hau da:

                (5)

α=1 kasua:

Aldaketak desegin:

t=tan(θ/2)

                                                                     (6)

 

Konfigurazio lineala

Kasu berezi hau emateko cosθ=α=x0/L izan behar da.

Izan ere, θ angelua konstantea denez, sokaren forma zuzena da eta bere ekuazioa hau da:

 

Konfigurazio ahurra

Sokak konfigurazio ahurra izateko, α<x0/L, izan behar da, eta jakina, α<1.

Konfigurazio ahurra katenariaren antzekoa da, alegia, minimo bat dauka erpinean, x=0.

  • x=0 posizioan, sokaren tangenteak θ=0 angelua osatzen du horizontalarekiko.

  • x=x0 posizioan, sokaren tangenteak θ=θ0 angelua osatzen du horizontalarekiko.

Kurba horren ekuazio parametrikoak (3) eta (5) dira:

  • x=0 posizioan, sokaren tangenteak θ=0 angelua osatzen du horizontalarekiko.

  • y=0 posizioan, sokaren tangenteak θ=θ0 angelua osatzen du horizontalarekiko.

Baldintza horiexek hartuko ditugu muga-baldintzatzat cx eta cy integrazio-konstanteak kalkulatzeko:

Sokaren forma deskribatzen duen kurba irudikatzeko, C konstantea eta θ0 angelua ezagunak izan behar dira.

C konstantea eta θ0  angelua nola kalkulatu

Sokaren erdiaren luzera, L, kalkula daiteke elementu guztien luzerak batuz:

Integral hori ebatz daiteke, lehen, x abzisa θ-ren menpe lortzeko erabili dugun prozedura berarekin.

Hasteko, aldagaia aldatu:

Eta integrala horrela berridazten da:

Aldaketa desegin:

Ordezkatu sokaren muturraren posizioa (x0) eta sokaren tangenteak puntu horretan osatzen duen angelua (θ0) (ikusi irudia).

Azken bi ekuazioen artean, C elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du kasu berezi batean (α=0.3<x0/L=0.5) ekuazio transzendenteak zero bat daukala θ=69º inguruko angeluan eta ez-jarraitutasun bat, izan ere, ondoko baldintza hau betetzen duen angeluan:

Baldin α=0.3, hauxe ateratzen da: θ=72.5º.

Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, esaterako, erdiko puntuaren prozeduraz, eta (0, 72.5º) tartean. Hala egiten bada, honako angelua ematen du: θ0=68.7º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1.

θ0  kalkulatu ondoren, C kalkula daiteke eta, horrela, sokaren forma deskribatzen duen kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: 0≤θθ0.

Konfigurazio ganbila

Ondoko irudiak erakusten du konfigurazio ganbila. Hiru konfigurazio ganbil posible daude:

  • α>x0/L eta α<1

  • α>1

  • α=1

Konfigurazio ganbilean, sokaren azpiko zatia, d luzeraduna, beste aldeko sokarekin itsatsita dago. Bi aldeetako zatiak berdinak dira eta P erpinetik sokaren muturrera L-d luzera dago. Zati horrek osatzen du kurba ganbila. Sokaren tangenteak horizontalarekiko osatzen dituen θ angeluak π/2 eta θbitartean daude.

P puntutik behera, d luzeradun soka-zati bat dago eskegita, alde bakoitzetik, eta horregatik puntu horretan sokaren tentsioa hau da:

T=λgd

Sokaren tentsioarentzat adierazpen bat lortuko dugu, θ parametroaren menpe, integrazio bidez:

T(cosθ-α)=Cλg

Eta P puntuan θ=π/2 denez, honakoa lortzen da:

-=Cλg

Eta konstantearen balioa: C= -αd

Lehen kasua, α>x0/L eta α<1

Kasu hau eta ahurra antzekoak dira.

Sokaren ekuazio parametrikoak (3) eta (5) dira:

  • x=0 puntuan, sokaren tangenteak horizontalarekin osatzen duen angelua: θ= π/2.

  • y=0 puntuan, sokaren tangenteak horizontalarekin osatzen duen angelua: θ=θ0.

Bi datu horiekin integrazio-konstante biak kalkula daitezke: cx eta cy.

Sokaren forma deskribatzen duen kurbaren ekuazioa adierazteko, lehenik, d luzera eta θ0 angelua ezagutu behar ditugu.

d luzera eta θ0 angelua nola kalkulatu

Elementuen luzerak batuz, sokaren luzera lortzen da (L-d):

Integral hori lehenago lortu dugu, konfigurazio ahurrean.

Sokaren muturraren posizioan (x0) sokaren tangenteak horizontalarekin osatzen duen angelua θ0 da:

Azken bi ekuazioen artean, d elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du kasu berezi batean (α=0.7>x0/L=0.5 eta α<1) ekuazio transzendenteak zero bat daukala θ=50º inguruko angeluan eta ez-jarraitutasun bat, izan ere, ondoko baldintza hau betetzen duen angeluan:

Baldin α=0.7, hauxe ateratzen da: θ=45.6º

Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, esaterako, erdiko puntuaren prozeduraz, eta (45.6, 90º) tartean. Hala egiten bada, honako angelua ematen du: θ0=50.5º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1.

θ0  kalkulatu ondoren, d kalkula daiteke eta, horrela, sokaren forma deskribatzen duen kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: θ0θ≤π/2.

Bigarren kasua, α>1

Sokaren ekuazio parametrikoak (3) eta (4) dira:

Eta C=-αd, lehengo kasuan bezalaxe.

  • x=0 posizioan, sokaren tangenteak osatzen duen angelua θ= π/2 da.

  • y=0 posizioan, sokaren tangenteak osatzen duen angelua, θ=θ0 da.

Bi datu horiekin, integrazio-konstante biak kalkula daitezke: cx eta cy.

Kurba hori adierazteko (sokaren forma deskribatzen duena) ezagunak izan behar dira d luzera eta θ0 angelua.

 

Nola kalkulatu d  luzera eta θ0 angelua.

Elementuen luzerak batuz, sokaren luzera kalkula daiteke (L-d):

Aldagaia aldatuz:

Integrala honela berridatz daiteke:

Lehen integrala berehalakoa da, eta bigarrena zatika egin daiteke:

Hona emaitza:

Orain, aldaketak desegin, β parametroa α-ren menpe adierazi eta t adieraz daiteke θ angeluaren menpe.

Azken emaitza hau da:

Ordezkatzen baditugu sokaren muturraren posizioa (x0) eta sokaren tangentearen angelua posizio horretan (θ0):

Azken bi ekuazioen artean, d elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du α=1.2 bada, orduan, ekuazio transzendenteak zero bat daukala θ=31º inguruko angeluan.

Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, esaterako, erdiko puntuaren prozeduraz, eta honako angelua ematen du: θ0=30.7º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1.

θ0  kalkulatu ondoren, d kalkula daiteke eta, horrela, kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: θ0θ≤π/2.

Hirugarren kasua, α=1

Sokaren ekuazio parametrikoak (3) eta (6) dira:

eta C=-αd=-d , lehengo kasuan bezalaxe.

  • x=0 posizioan, sokaren tangenteak osatzen duen angelua θ= π/2 da.

  • y=0 posizioan, sokaren tangenteak osatzen duen angelua, θ=θ0 da.

Bi datu horiekin, integrazio-konstante biak kalkula daitezke: cx eta cy.

Kurba hori adierazteko (sokaren forma deskribatzen duena) ezagunak izan behar dira d luzera eta θ0 angelua.

Nola kalkulatu d luzera eta θ0 angelua.

Elementuen luzerak batuz, sokaren luzera ematen du (L-d):

Aldagaia aldatzen da:

Aldaketa desegin:

Sokaren muturraren posizioan (x0) sokaren tangenteak horizontalarekin osatzen duen angelua θ0 da:

Azken bi ekuazioen artean, d elimina daiteke eta ekuazio transzendente bat lortzen da, θ0-ren menpekoa. Ondoko irudiak erakusten du α=1.0 bada, orduan ekuazio transzendenteak zero bat daukala θ=38º inguruko angeluan.

Ekuazio transzendentea prozedura numeriko batez ebatz daiteke, eta honako angelua ematen du: θ0=38.3º. Horixe da sokaren tangenteak osatzen duen angelua muturrean, x0=1.

θ0  kalkulatu ondoren, d kalkula daiteke eta, horrela, kurbaren ekuazio parametrikoak: x(θ), y(θ) honako tartean: θ0θ≤π/2.

Saiakuntza

Aukeran idatz daitezke:

  • x0/L  erlazioa (<1), sokaren muturren arteko distantzia (2x0) eta sokaren luzera (2L), desplazamendu-barrari saguaz eragiten.

  • Alfa parametroa, α, desplazamendu-barrari saguaz eragiten. α=2σ/λg (gainazal tentsioaren koefizientea zati sokaren masa-dentsitate lineala). α handitzeak esan nahi du, sokak masa gutxiago duela edota likido xaboitsuak gainazal-tentsio handiagoa duela.

  • Sokaren luzera finkotzat hartu da. Luzera horren erdia: L=2.0

Grafikoa botoian klikatu.

Programak soka irudikatzen du, eta idatziz ematen ditu erpinaren datu geometrikoak, marra horizontal beltz batez markatuta (x=0 posizioan); konfigurazio ahurretan, erpinaren altuera ematen du, ymin, eta, konfigurazio ganbiletan bi datu ematen ditu: ymin, erpinaren posizioa, eta (ymin+d), itsatsita geratzen den soka-zatiaren luzera, d.

Esate baterako, finka ezazu α, eta alda ezazu sokaren muturren arteko distantzia (2x0). Zenbat eta zabalago, soka ahurrago ateratzen da, eta alderantziz.

Ondoren, finka ezazu sokaren muturren arteko distantzia (2x0) eta alda ezazu α=2σ/λg. Zenbat eta α handiagoa, soka ganbilago ateratzen da eta alderantziz, sokak λ masa-dentsitate gutxiago izango balu bezala, edota likido xaboitsuak σ gainazal-tentsio handiagoa.

Halaber, sokaren gainean puntu bat aukera daiteke, Posizioa izeneko desplazamendu-barrari saguaz eragiten (posizioak puntuaren altuera adierazten du). Eta programak irudikatzen ditu hiru bektore:

  • Urdinez, gainazal-tentsioak eragiten duen indarra, luzera unitateko: 2σ.

  • Beltzez, sokaren pisua luzera unitateko: λg.

  • Gorriz, pisuak sokaren norabide normalean duen osagaia: λg·cosθ.

Konpara bitez gainazal-tentsioaren indarra (urdina) eta pisuaren osagai normala (gorria) α parametroaren menpe.

CalibreApplet aparecerá en un explorador compatible con JDK 1.1.

 

Erreferentzia

Behroozi F., Mohazzabi P., McCrickard J. P., Remarkable shapes of a catenary under the effect of gravity and surface tension. Am. J. Phys. 62 (12) December 1994, pp. 1121-1128

 

Programazio-kodea

public abstract class Raiz {
	private final double CERO=1e-10;
	private final double ERROR=0.001;
	private final int MAXITER=200;

public Raiz(double alfa, double x0, double lon) {
	this.alfa=alfa;
	this.x0=x0;
	this.lon=lon;
}
protected double puntoMedio(double a, double b) {
	double m, ym;
	int iter=0;
	do{
		m=(a+b)/2;
		ym=f(m);
		if(Math.abs(ym)<CERO) break;
		if(Math.abs((a-b)/m)<ERROR) break;
		if((f(a)*ym)<0) b=m;
		else a=m;
		iter++;
	}while(iter<MAXITER);
	return m;
}
protected abstract double f(double x);
}
public abstract class Sistema extends Raiz {
//parámetros comunes a todas las clases derivadas
	protected double alfa;
	protected double x0;
	protected double lon=2.0;
	protected double fi0;
	public double yMin;
	public double lonY;
	protected double con;

public Sistema(double alfa, double x0, double lon) {
	this.alfa=alfa;
	this.x0=x0;
	this.lon=lon;
}
public abstract void inicio();
public abstract double fX(double x);
//funciones comunes a las clases
//calcula la ordenada de la curva
protected double fY(double x){
	double y=1.0/(Math.cos(x)-alfa)-1.0/(Math.cos(fi0)-alfa);
	return (con*y);
}
//transforma la ordenada en ángulo fi
public double fAngulo(double y){
	double z=alfa+1.0/(y/con+1.0/(Math.cos(fi0)-alfa));
	return Math.acos(z);
}
}
public class Concava extends Sistema{
	private double A, B;
public Concava(double alfa, double x0, double lon) {
	super(alfa, x0, lon);
	lonY=0.0;
}
//raíces de la ecuación trascendente calcula fi0
protected double f(double x){
	coeficientes(x);
	double y=A*(lon*alfa-x0)+B*(lon-x0*alfa);
	return y;
}
public void inicio(){
	double fiMax=2*Math.atan(Math.sqrt((1-alfa)/(1+alfa)));
	fi0=puntoMedio(0.0, fiMax);
	//System.out.println((fi0*180/Math.PI)+" "+(fiMax*180/Math.PI));
	con=fConstante(fi0);
	yMin=fY(0.0);
}
//calcula la constante C
private double fConstante(double x){
	coeficientes(x);
	double y=x0/(A*alfa+B);
	return y;
}
//calcula la abscisa de la curva
public double fX(double x){
	coeficientes(x);
	double y=con*(A*alfa+B);
	return y;
}

//función auxiliar común a varios miembros
private void coeficientes(double x){
	A=Math.sin(x)/((Math.cos(x)-alfa)*(1-alfa*alfa));
	B=Math.log(Math.abs(((1+alfa)*Math.tan(x/2)+Math.sqrt(1-alfa*alfa))/
	((1+alfa)*Math.tan(x/2)-Math.sqrt(1-alfa*alfa))))
	/(Math.sqrt(1-alfa*alfa)*(1-alfa*alfa));
}
}
public class Convexa_1 extends Sistema {
	private double A, B, C, D;
public Convexa_1(double alfa, double x0, double lon) {
	super(alfa, x0, lon);
}
//raíces de la ecuación trascendente calcula fi0
protected double f(double x){
	coeficientes(x);
	double y=A*(-x0+lon*alfa)+(lon-x0*alfa)*(B+C-D);
	return y;
}
public void inicio(){
	double fiMax=2*Math.atan(Math.sqrt((1-alfa)/(1+alfa)));
	fi0=puntoMedio(Math.PI/2, fiMax);
	lonY=fMin_Y(fi0);
	yMin=fY(Math.PI/2);
//System.out.println((fi0*180/Math.PI)+" "+yMin);
}
//calcula la longitud de la parte inferior de la cuerda que está pegada
private double fMin_Y(double x){
	coeficientes(x);
	double y=-x0/(alfa*(alfa*A+B+C-D));
	return y;
}
//calcula la abscisa de la curva
public double fX(double x){
	coeficientes(x);
	double y=-alfa*lonY*(alfa*A+B+C-D);
	return y;
}

//función auxiliar común a varios miembros
private void coeficientes(double x){
	A=Math.sin(x)/((Math.cos(x)-alfa)*(1-alfa*alfa));
	B=Math.log(Math.abs(((1+alfa)*Math.tan(x/2)+Math.sqrt(1-alfa*alfa))
	/((1+alfa)*Math.tan(x/2)-Math.sqrt(1-alfa*alfa))))/(Math.sqrt(1-alfa*alfa)*(1-alfa*alfa));
	C=1.0/(1-alfa*alfa);
	D=Math.log(Math.abs(((1+alfa)+Math.sqrt(1-alfa*alfa))/((1+alfa)-Math.sqrt(1-alfa*alfa))))
	/(Math.sqrt(1-alfa*alfa)*(1-alfa*alfa));
}

}
public class Convexa_2 extends Sistema {
	private double A, B, C, D;
public Convexa_2(double alfa, double x0, double lon) {
	super(alfa, x0, lon);
}
//raíces de la ecuación trascendente calcula fi0
protected double f(double x){
	coeficientes(x);
	double y=A*(-x0+lon*alfa)+(x0*alfa-lon)*(-B+C+D);
	return y;
}
public void inicio(){
	fi0=puntoMedio(Math.PI/2, 0.0);
	lonY=fMin_Y(fi0);
	yMin=fY(Math.PI/2);
	//System.out.println((fi0*180/Math.PI)+" "+yMin);
}
//calcula la longitud de la parte inferior de la cuerda que está pegada
private double fMin_Y(double x){
	coeficientes(x);
	double y=x0/(-A*alfa-B+C+D);
	return y;
}
//calcula la abscisa de la curva
public double fX(double x){
	coeficientes(x);
	double y=lonY*(-alfa*A-B+C+D);
	return y;
}
//función auxiliar común a varios miembros
private void coeficientes(double x){
	A=alfa*Math.sin(x)/((alfa-Math.cos(x))*(alfa*alfa-1));
	B=2*alfa*Math.atan((alfa+1)*Math.tan(x/2)/Math.sqrt(alfa*alfa-1))
	/(Math.sqrt(alfa*alfa-1)*(alfa*alfa-1));
	C=alfa/(alfa*alfa-1);
	D=2*alfa*Math.atan((alfa+1)/Math.sqrt(alfa*alfa-1))/(Math.sqrt(alfa*alfa-1)*(alfa*alfa-1));
}
}
public class Convexa_3 extends Sistema {

public Convexa_3(double x0, double lon) {
	super(1.0, x0, lon);
}
//raíces de la ecuación trascendente calcula fi0
protected double f(double x){
	double A=Math.tan(x/2);
	double y=(lon-x0)/(6*A*A*A)-(lon+x0)/(2*A)+(lon-x0)/3;
	return y;
}
public void inicio(){
	fi0=puntoMedio(Math.PI/2, 0.0);
	lonY=fMin_Y(fi0);
	yMin=fY(Math.PI/2);
	//System.out.println((fi0*180/Math.PI)+" "+yMin);
}
//calcula la longitud de la parte inferior de la cuerda que está pegada
private double fMin_Y(double x){
	double A=Math.tan(x/2);
	double y=1.0/3+1.0/(6*A*A*A)-1.0/(2*A);
	return (x0/y);
}
//calcula la abscisa de la curva
public double fX(double x){
	double A=Math.tan(x/2);
	double y=1.0/3+1.0/(6*A*A*A)-1.0/(2*A);
	return (lonY*y);
}
}
public class Principal {
 	Sistema obj;
	final double lon=2.0;  //mitad de la longitud de la cuerda
//función que crea los objetos de las distintas clases dependiendo del valor de 
//parámetro alfa y del cociente x0/L. 
 void nuevo(double alfa, double cociente){
	if(alfa==1.0){
		obj=new Convexa_3(cociente*lon, lon);
	}else if(alfa<1.0 && alfa<cociente){
		obj=new Concava(alfa, cociente*lon, lon);
	}else if(alfa<1.0){
		obj=new Convexa_1(alfa, cociente*lon, lon);
	}else{
		obj=new Convexa_2(alfa, cociente*lon, lon);
	}
	obj.inicio();
}
//representación gráfica
}