MATLAB에서 'trapz'명령을 사용하여 삼중 정수를 계산하려고합니다. 내 integrand는 gamma1, gamma2, s의 함수입니다 ... 나는 정수를 수치 적으로 평가하고 상징적으로 평가하지 않습니다.사각형 상자의 일부에 trapz를 사용하는 삼중 적분
syms gamma1; syms gamma2; syms s
f=gamma1*gamma2*exp(-s*10);
x= -20:0.3:20;
y=linspace(0.1,100000,length(x));
z=linspace(0.1,100000,length(x));
[s,gamma1,gamma2] = ndgrid(x,y,z);
mat=eval(f).* (gamma2>gamma1); %MY QUESTION IS HERE
out = trapz(x,trapz(y,trapz(z,mat,3),2),1);
제 질문은 필자의 integrand에 대한 조건입니다. 감마 2> gamma1 일 때만 평가해야합니다. 위의 코드가 정확합니까? 즉 논리 문장을 올바르게 추가하는 방법입니까?
감사합니다. 모든 치수에서 샘플 지점 수를 다르게 선택할 수 있습니까? 하나 시도해도 오류가 있다고 생각합니다. 예를 들어주세요. – Tyrone
나를위한 작업 : 예를 들어 ,'x = 0 : 0.01 : 2; y = 0 : 0.01 : 3; z = 0 : 0.01 : 5;와 나머지는 이전과 같습니다. –
고마워, 나를 위해 너무 작동합니다. 당신이 한 가지 더 질문 할 마음이 없다면, 나는 내 기능의 여분의 조건을 가지고있다. 나는 항상 s가 0과 같지 않기를 바란다. 이미이 논리 연산을 추가 할 수 있습니까? – Tyrone