Mathematica plot elipsy

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
CraZy
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 18 lis 2013, o 15:57
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 1 raz

Mathematica plot elipsy

Post autor: CraZy »

Kod: Zaznacz cały

ContourPlot[{2 x^2 + 3 y^2 + 4 x*y + 3 x + 2 y + 2 == 0}, {x, -5, 
  25}, {y, 3, 4}, Mesh -> 5, MeshStyle -> Automatic]
mam funkcji elipsy i co robie źle że mi się nie wyświetla?
Ostatnio zmieniony 17 kwie 2014, o 21:27 przez yorgin, łącznie zmieniany 1 raz.
Powód: Kod umieszczamy w tagach [code] [/code]
Awatar użytkownika
Martingale
Użytkownik
Użytkownik
Posty: 76
Rejestracja: 9 lip 2013, o 10:49
Płeć: Mężczyzna
Lokalizacja: Stuttgart
Podziękował: 3 razy
Pomógł: 10 razy

Mathematica plot elipsy

Post autor: Martingale »

Równanie \(\displaystyle{ 2x^2 + 4xy + 3y^2 + 3x +2y +2 = 0}\) opisuje zbiór pusty.
CraZy
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 18 lis 2013, o 15:57
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 1 raz

Mathematica plot elipsy

Post autor: CraZy »

okej już wiem co było źle bo profesor nie podał mi jednej rzeczy,

czy ktoś wie jakie mają być zależności dla parametrów a,b,c,d,e,f aby rysowało mi elipse? wiem że jest to optymalizacja z ograniczeniami/nierównościami

Kod: Zaznacz cały

Plot[{a*x^2 + b*x*y + c*y^2 + d*x + e*y + f}, {x, -5, 25}, {y, 3, 4}, 
 Mesh -> 5, MeshStyle -> Automatic] 
CraZy
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 18 lis 2013, o 15:57
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 1 raz

Mathematica plot elipsy

Post autor: CraZy »

Czy ktoś mi pomoże stworzyć plot tego równania \(\displaystyle{ ax ^{2}+2bxy+cy ^{2}+2dx+2fy+g=0}\)
z zależnościami
\(\displaystyle{ \Delta=\left|\begin{array}{ccc}a&b&d\\b&c&f\\d&f&g\end{array}\right|}\)
J=\(\displaystyle{ \begin{vmatrix} a&b\\b&c\end{vmatrix}}\)
\(\displaystyle{ I=a+c}\)
\(\displaystyle{ \Delta \neq 0,}\)
\(\displaystyle{ J>0,}\)
\(\displaystyle{ \Delta/I<0}\)
CraZy
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 18 lis 2013, o 15:57
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 1 raz

Mathematica plot elipsy

Post autor: CraZy »

Jak dodać warunki w jednej funkcji do tych trzech równań:

\(\displaystyle{ \Delta=-c d^2 + 2 b d f - a f^2 - b^2 g + a c g}\)

\(\displaystyle{ J=-b^2 + a c}\)

\(\displaystyle{ I=a+c}\)

warunki:

\(\displaystyle{ \Delta\neq0}\)

\(\displaystyle{ J>0}\)

\(\displaystyle{ \Delta/I<0}\)

I czy da się zrobić tak, żeby raz podstawić liczby pod trzy równania? I może jakiś generator random żeby podane liczby spełniały ww warunki.

Kod: Zaznacz cały

Delta[a_, b_, c_, d_, f_, g_] := -c d^2 + 2 b d f - a f^2 - b^2 g + a c g
J[a_, b_, c_] := -b^2 + a c
i[a_, c_] := a + c
?[-2, 4, -6, 2, 1, 2]
-- 21 maja 2014, o 21:01 --ktoś pomoże dodać tu Manipulate[] tak żeby generowało elipsy wraz z punktami na niej tak jak jest teraz za pomocą Shift+Enter po każdym kliknięciu

Kod: Zaznacz cały

While[True,
   (*Randomly choose coefficients until acceptable*)
   {a, b, c, d, f, g} = RandomReal[{-10, 10}, 6];
   Δ = -c d^2 + 2 b d f - a f^2 - b^2 g + a c g; j = -b^2 + a c; i = a + c; 
   If[Δ != 0 && j > 0 && Δ/i < 0, Break[]]
 ];
 ellipse = a*x^2 + 2*b*x*y + c*y^2 + 2*d*x + 2*f*y + g;
 (*Center of an ellipse in general form is{(c d-b f)/(b^2-a c),(a f-b d)/(b^2-a c)}*)
 points = Table[theta = RandomReal[{0, 2 Pi}];
  ksol = FindRoot[(ellipse /. {x -> k*Cos[theta] + (c d - b f)/(b^2 - a c), 
    y -> k*Sin[theta] + (a f - b d)/(b^2 - a c)}) == 0, {k, 1.}];
  Point[{x, y}] /. {x -> k*Cos[theta] + (c d - b f)/(b^2 - a c), 
    y -> k*Sin[theta] + (a f - b d)/(b^2 - a c)} /. ksol, {5}];
nearpoints = points /. Point[{x_, y_}] :> Point[{x + RandomReal[{-.1, .1}], y + RandomReal[{-.1, .1}]}];
(* ellipse x and y min and max values *)
yplotrange = Flatten[{y, Sort[{
  ( 2*b*d - 2*a*f + Sqrt[(2*b*d - 2*a*f)^2 - 4*(b^2 - a*c)*(d^2 - a*g)])/(2*(-b^2 + a*c)),
  (-2*b*d + 2*a*f + Sqrt[(2*b*d - 2*a*f)^2 - 4*(b^2 - a*c)*(d^2 - a*g)])/(2*( b^2 - a*c))}]}];
xplotrange = Flatten[{x, Sort[{
  ( 2*c*d - 2*b*f + Sqrt[(-2*c*d + 2*b*f)^2 - 4*(b^2 - a*c)*(f^2 - c*g)])/(2*( b^2 - a*c)),
  (-2*c*d + 2*b*f + Sqrt[(-2*c*d + 2*b*f)^2 - 4*(b^2 - a*c)*(f^2 - c*g)])/(2*(-b^2 + a*c))}]}];
Show[ContourPlot[ellipse == 0, Evaluate[xplotrange], Evaluate[yplotrange]],
  Graphics[points],
  Graphics[nearpoints]]
CraZy
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 18 lis 2013, o 15:57
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 1 raz

Mathematica plot elipsy

Post autor: CraZy »

Kod: Zaznacz cały

Panel[Column[{Button["Generuj Elipse", 
    While[True,(*Randomly choose coefficients until acceptable*){a, b,
        c, d, f, g} = RandomReal[{-10, 10}, 6];
     [CapitalDelta] = -c d^2 + 2 b d f - a f^2 - b^2 g + a c g;
     j = -b^2 + a c; i = a + c;
     If[[CapitalDelta] != 0 && j > 0 && [CapitalDelta]/i < 0, 
      Break[]]];
    ellipse = a*x^2 + 2*b*x*y + c*y^2 + 2*d*x + 2*f*y + g;
    (*Center of an ellipse in general form is{(c d-b f)/(b^2-
    a c),(a f-b d)/(b^2-a c)}*)
    points = Table[theta = RandomReal[{0, 2 Pi}];
      ksol = 
       FindRoot[(ellipse /. {x -> 
             k*Cos[theta] + (c d - b f)/(b^2 - a c), 
            y -> k*Sin[theta] + (a f - b d)/(b^2 - a c)}) == 0, {k, 
         1.}];
      Point[{x, y}] /. {x -> k*Cos[theta] + (c d - b f)/(b^2 - a c), 
         y -> k*Sin[theta] + (a f - b d)/(b^2 - a c)} /. ksol, {5}];
    nearpoints = 
     points /. 
      Point[{x_, y_}] :> 
       Point[{x + RandomReal[{-.1, .1}], y + RandomReal[{-.1, .1}]}];
    (*ellipse x and y min and max values*)
    yplotrange = 
     Flatten[{y, 
       Sort[{(2*b*d - 2*a*f + 
            Sqrt[(2*b*d - 2*a*f)^2 - 
              4*(b^2 - a*c)*(d^2 - a*g)])/(2*(-b^2 + a*c)), (-2*b*d + 
            2*a*f + 
            Sqrt[(2*b*d - 2*a*f)^2 - 
              4*(b^2 - a*c)*(d^2 - a*g)])/(2*(b^2 - a*c))}]}];
    xplotrange = 
     Flatten[{x, 
       Sort[{(2*c*d - 2*b*f + 
            Sqrt[(-2*c*d + 2*b*f)^2 - 
              4*(b^2 - a*c)*(f^2 - c*g)])/(2*(b^2 - a*c)), (-2*c*d + 
            2*b*f + 
            Sqrt[(-2*c*d + 2*b*f)^2 - 
              4*(b^2 - a*c)*(f^2 - c*g)])/(2*(-b^2 + a*c))}]}];
    final = 
     Show[ContourPlot[ellipse == 0, Evaluate[xplotrange], 
       Evaluate[yplotrange]], Graphics[points], 
      Graphics[{Red, nearpoints}], ImageSize -> {500, Automatic}]], 
   Dynamic[final], 
   Dynamic@Grid[
     Join[{{"points", "nearby points"}}, 
      Transpose[{points, nearpoints}][[All, All, 1]]], Frame -> All, 
     Alignment -> Left]}]]

Czy ktoś mi jest w stanie wytłumaczyć jak mają działać warunki kuhna tuckera dla mojej aplikacji?
Mam ogólnie wygenerowaną elipse z 5 randomowymi punktami na niej i dodany szum generujący punkty leżące blisko tych na elipsie. Mam pokazać czy uda mi się przeprowadzić elipse przez te punkty z szumem czy nie. Mam obliczyć także funkcje kosztu.
ODPOWIEDZ