Forum www.zinfa.fora.pl Strona Główna
FAQ Szukaj Użytkownicy Grupy Profil Zaloguj się, by sprawdzić wiadomości
Forum www.zinfa.fora.pl Strona Główna  Zaloguj  Rejestracja
Optymalizacja the final podejście

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.zinfa.fora.pl Strona Główna -> Rok IV / Opracowania, pomoce IV
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Mirtan




Dołączył: 03 Mar 2010
Posty: 68
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 9:22, 16 Paź 2011    Temat postu: Optymalizacja the final podejście

Elo elo 3 2 0.

Wiadomo.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
Marek




Dołączył: 13 Kwi 2010
Posty: 3
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 16:01, 16 Paź 2011    Temat postu:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Metoda_Newtona
{
class MetodaNewtona
{


static int licznik = 0;
static double EPSILON = 0.005;

public static void Main(String[] args)
{
SprawdzObszar(0.0, 10.0);
}

static double bb(double t)
{
/*
zamiana z 3 na 1 zmienna:
początek(p) w 0,0,8, koniec(k) 1,1,0
(pamiętając, że x1=p1+k1*t)
x1=0+t*1 -> x1=t
x2=0+t*1 -> x2=t
x3=8+t*0 -> x3=8
*/
// return f(0.0 + 1.0*t,0.0+1.0*t,8.0+0.0);
double x = t;
double y = t;
double z = 8 + t * 0;
return f(x, y, z);
}

public static double f(double a, double b, double c)
{
double odp = Math.Abs(Math.Sqrt(
Math.Pow((a - 5.0), 0) + Math.Pow((b - 5.0), 0) + Math.Pow((c - 5.0), 0)
) - 3.0)
+ Math.Abs(c - 8.0) - 0.0625;

return Math.Abs(odp);

}

private static void SprawdzObszar(double L, double P)
{
licznik++;
if (Math.Abs(L - P) < EPSILON)
{
if (Math.Abs(bb(L)) < EPSILON || Math.Abs(bb(P)) < EPSILON)
// filtrowanie powtarzających się przedziałów
if (Math.Abs(bb(L)) < 0.001)
{
WypiszDobryObszar(L, P);
}
}
else
{
if (Math.Abs(bb(L)) + Math.Abs(bb(P)) > P - L)
{
// System.out.println("pusto");
return; // nie pasuje
}

else
{
//System.out.println("dzielimy dalej");
SprawdzObszar(L, (P + L) / 2.0);
SprawdzObszar((P + L) / 2.0, P);
}
}
}

private static void WypiszDobryObszar(double L, double P)
{
Console.WriteLine("Potrzeba " + licznik + " wartości funkcji");
Console.WriteLine("\nZnaleziono f(x):" + bb(L));
Console.WriteLine("\nx:" + L + "\ny:" + L + "\nz:" + 8.0);
Console.WriteLine("\nZnaleziony t:" + L + "\n");
Console.ReadKey();
}

}
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.zinfa.fora.pl Strona Główna -> Rok IV / Opracowania, pomoce IV Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
BBTech Template by © 2003-04 MDesign
Regulamin