/ / Използване на fminsearch на Matlab за най-малък кръг - MATLAB, fminsearch

Използване на fminsearch на Matlab за най-малък кръг - MATLAB, fminsearch

за домашната ми работа трябва да изчисля най-малкия кръг. първата част изискваше да изчислим евклидовото разстояние и успях да го направя със следния код:

function euclidean = center(x, y)
maximaldist = 0;
rng(0, "twister")
A= randi([0 10],10,2)
for i=1:size(A,1)
euclidean=sqrt((x-A(i)).^2 + (y-A(i+size(A,1))).^2);
if euclidean > maximaldist
maximaldist = euclidean;
end
end

за втората част трябва да продължа с използването на fminsearch, но по някаква причина не мога да го прилага в кода (мога да го използвате от командния прозорец). може ли някой да ми помогне по този въпрос?

EDIT: така че това, което съм опитвал ...

основно всичко, което можех да намеря.

for i=1:size(A,1)
fun=@(x) sqrt((x(1)-A(i)).^2 + (x(2)-A(i+size(A,1))).^2);
end
x0=[0 0];
fminsearch(fun, x0)
end

това беше, че ще се усъвършенствам с фммаркетинговата част, от отчаяние.

тогава промених кода в това; така че мога да опитам един, както следва;

function euclidean = denneme(x,y)
%point_x=point(1);
%point_y=point(2);
rng(0, "twister")
a= randi([0 10],10,1);
b= randi([0 10],10,1);
distance=sqrt((x-a).^2 + (y-b).^2);
euclidean=max(distance);
f= @(x) denneme(x(1),x(2));
fminsearch(f, [0 0])

но се казва, че няма достатъчно входни аргументи. Опитах толкова много неща и изтрих толкова много от тях, така че не мога да достигна до много от изпитанията.

Отговори:

0 за отговор № 1

Би било от полза, ако публикувате това, което вече сте опитвали, и сте описали какви проблеми срещате.

EDIT: Тук претоварвате ли централната функция? Любопитен съм, че този код се изпълняваше.