2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Помогите исправить программу в Wolfram mathematica
Сообщение18.11.2024, 04:46 
1. Решите графически систему


$$
\left\{\begin{aligned} {{}} & {{} {{} {{} x^{2}+y^{2}=4,}}} \\ {{{}}} & {{} {{} {{} ( x-3 )^{2}+( y+4 )^{2}=a^{2}}}} \\ \end{aligned} \right. 
$$


для различных значений параметра а. Значения параметра задаются слайдером, для каждого значения выведите количество решений системы.


Код:
(*task 1*)

circle1[x_, y_] := x^2 + y^2 == 4

circle2[x_, y_, a_] := (x - 3)^2 + (y + 4)^2 == a^2

countSolutions[a_] :=   Module[{eq1, eq2, plot1, plot2, intersections},

   plot1 = Plot[Evaluate[Solve[circle1[x, y], y]], {x, -3, 3},
 
   PlotStyle -> {Blue, Blue}, PlotRange -> {{-5, 5}, {-5, 5}}];

   plot2 = Plot[Evaluate[Solve[circle2[x, y, a], y]], {x, 1, 5},

     PlotStyle -> {Red, Red}];

   intersections = NSolve[{circle1[x, y], circle2[x, y, a]}, {x, y}];   

Show[plot1, plot2, PlotRange -> All, AxesLabel -> {"x", "y"},

  PlotLabel -> "Решения системы уравнений"]];

Manipulate[countSolutions[a], {a, 1, 10, 1}  ]



Почему-то не работает ползунок (двигаю, а ничего не меняется). И график не показывает, только декартова систему координат.

-- 18.11.2024, 04:47 --

Помогите, пожалуйста, разобраться

 
 
 
 Re: Помогите исправить программу в Wolfram mathematica
Сообщение18.11.2024, 21:42 
Команда Solve выдает результат в виде правил {x->...}. Чтобы работало, надо подставить переменные. Ну и точки пересечения вывести.
Код:
(*task 1*)circle1[x_, y_] := x^2 + y^2 == 4

circle2[x_, y_, a_] := (x - 3)^2 + (y + 4)^2 == a^2

countSolutions[a_] :=
  Module[{eq1, eq2, plot1, plot2, intersections},
   plot1 = Plot[y /. Evaluate[Solve[circle1[x, y], y]], {x, -3, 3},
     PlotStyle -> {Blue, Blue}, PlotRange -> {{-5, 5}, {-5, 5}}];
   plot2 =
    Plot[y /. Evaluate[Solve[circle2[x, y, a], y]], {x, -3, 5},
     PlotStyle -> {Red, Red}];
   intersections =
    Select[{x, y} /.
      NSolve[{circle1[x, y], circle2[x, y, a]}, {x, y}], # \[Element]
       Reals &];
   Show[plot1, plot2, PlotRange -> All, AxesLabel -> {"x", "y"},
    PlotLabel -> "Решения системы уравнений",
    Epilog -> {PointSize[Medium], Point /@ intersections}]];

Manipulate[countSolutions[a], {a, 1, 10, 1}]


Решение тут, правда, аналитическое, а не графическое.

 
 
 
 Re: Помогите исправить программу в Wolfram mathematica
Сообщение18.11.2024, 23:16 
Изображение

 
 
 
 Re: Помогите исправить программу в Wolfram mathematica
Сообщение19.11.2024, 13:32 
Vince Diesel

Да
Спасибо
Исправляюсь

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group