2017-12-25 16 views
0

저는 Maple을 처음 접했고 일부 공통점이있는 함수에 대한 계산을하고 싶습니다. 문제는 공통 부분을 자주 변경해야하며 손으로 복사 및 붙여 넣기를 사용하고 싶지 않다는 것입니다.메이플의 프로 시저 변수에 수식 변수를 할당하는 방법은 무엇입니까?

이 코드를 작성했지만 작동하지 않습니다.

u := a*x^2+b*y^2+c*x: 
f1 := proc (x, y) options operator, arrow; u+5*x end proc 
f2 := proc (x, y) options operator, arrow; u+10*x end proc; 
f3 := proc (x, y) options operator, arrow; u+20*x end proc; 
diff(f1, x)+2*(diff(f2, x))+diff(f3, x) 

결과는 내 실수가 0

입니까? 어떻게해야합니까? 관심과 도움에 감사드립니다.

답변

0

문제는 f1, f2 및 f3이 수식 (표현식)이 아니라 연산자 (함수)라는 것입니다. 여기에는 몇 가지 가능한 해결책이 있습니다.

첫째, 수식 연산자를 대체 :

f1 := u + 5*x: 
f2 := u + 10*x: 
f3 := u+20*x: 
diff(f1, x)+2*(diff(f2, x))+diff(f3, x); 
         8 a x + 4 c + 45 

두 번째 옵션을, 연산자를 적용 실제로 사용되지

diff(f1(x,y), x)+2*(diff(f2(x,y), x))+diff(f3(x,y), x); 
         8 a x + 4 c + 45 

y있다. 두 번째 장점은 u을 변경하고 재평가하는 것이 좋습니다.

+0

이것은 통합 계산을위한 코드입니다. u (x, y)는 이전 계산의 x와 y의 함수이지만 f1에 할당 할 수 없습니다. 무엇을 할 수 있습니까? 'g1 : = 매트릭스 (1, 100); f1 : = (x, y) -> : k : = 0; i가 -1에서 .2에서 .8까지는 j에서 -1에서 .2에서 .8까지 do k : = k + 1; (j-j + 2) * (1/2)) * (i-i + 0.2) * (j- j + .2) 종료 할 일 끝; %; u4 : = 0; i = 100 일 때 s1 : = g1 [1, i]; u4 : = s1 + u4 end do; –

+0

불행하게도, 나는 당신이 무엇을 시도하고 있는지 정말로 이해하지 못하고있다. 제쳐두고, 두 번째 루프는 'add'를 호출하여 대체 할 수 있습니다. – DrC