다음과 같이 piecewise 함수 F_m(x)
이 있습니다. 여기서 x_m
및 \alpha
은 상수이고, m
은 아래 첨자입니다.Matlab의 piecewise 함수의 합계
나는 tau
내가 해결하려는 변수, N
및 C
이 상수 F_m(x)
을 포함 다음 방정식을 해결해야합니다.
그래서 나는 matlab에이 질문 리조트. 먼저 내가하는 .m 파일의 기능을 쓰기 : 다른하는 .m 파일에 다음
function y=pareto_CDF(x, xm)
alpha = 2; %set alpha to 2
if x < xm
y = 0;
else
y = 1-(xm/x)^alpha;
end
를 내가 쓰기 : 그러나
syms x;
C = 1000;
N = 20000;
%Pareto Distribution CDF: F(x)=1-(xm/x)^alpha.
%alpha is set to 2 in this program
alpha = 2;
j=1:1:N;
f=sum(pareto_CDF(x, 1/(alpha*rand())));
a = f - C;
tau = solve(a,'x');
, 나는 그것을 matlab에에서 다음과 같은 오류 실행에 도착했을 때 :
Conversion to logical from sym is not possible.
Error in pareto_CDF (line 4)
if x < xm
문제는 지금 : 나는 pareto_CDF(x, xm)
를 호출 이후, 그것은 방정식의 변수 때문에 sym
로 x
를 선언 할 필요는이 함수의도 sym
이지만 Matlabt는 sym
과 값 (xm) 사이의 비교를 지원하지 않습니다. 이 오류는 실제로는 함수 F(x)
의 조각 별 특성에 기인합니다.
그럼 어떻게이 문제를 해결할 수 있습니까? pareto_CDF 변경에 대한이 입력으로 벡터를 취하도록하고 출력으로 벡터를 반환 무엇
조각 별 기능을 사용하신 것을 축하드립니다! 나는 deribable 함수와 행렬을 가지고있다! –
농담 말고, 라텍스 편집에 문제가 있습니다. 함수의 양쪽에 $ 기호를 넣었지만 지금은 작동하지 않는 것 같습니다. – Bloodmoon
Stackoverflow에는 라텍스가 지원되지 않습니다. 농담은 단지 질문조차하지 않았기 때문입니다. 당신은 방금 조각 별 기능을 가지고 있다고 말했습니다. –