2014-12-01 5 views
0

함수를 어떻게 구별 할 수 있습니까? Fun? 내가 diff를 사용하려고하면 그것은 내가 사용하는 코드는 다음과 같습니다 Matlab은 인라인 함수를 차별화합니다.

'diff'

클래스 'inline'

지원되지 않습니다 말한다 :

fprintf('Newton Raphson\n'); 

Fun=input('\nType a function \n'); 
xi=input('\nType initial value\n'); 

def=diff(Fun); 

der=inline(def); 

dxi=der(xi); 
+1

무엇을 하시겠습니까? 또한 [inline] (http://au.mathworks.com/help/matlab/ref/inline.html)은 가치가 떨어집니다. 익명의 기능을 사용하는 것이 더 좋습니다. – Marcin

답변

1

마르신가 올바른지. inline 기능을 사용하지 마십시오. 그것들은 더 이상 사용되지 않습니다. Symbolic Math Toolbox를 사용하여 차별화하려면 sym을 사용하여 함수를 만든 다음이 함수를 사용하여 차별화하십시오. 수식 기호이기 때문에 특정 값으로 x을 대체하려는 경우, 당신이해야 할 것이라고

syms x; 
fprintf('Newton Raphson\n'); 

Fun=input('\nType a function \n'); 
xi=input('\nType initial value\n'); 

out = sym(Fun); 
def = diff(out); 
dxi = subs(def, 'x', xi); 

참고 : 이와 같이

x는 독립 변수라고 가정하면, 같은 것을 할 subs을 사용하십시오. subs을 사용하면 xxi에 저장된 초기 값으로 대체합니다.


사례를 실행 해 보겠습니다.

Newton Raphson 

Type a function 
x^2 + x + 3 

Type initial value 
4 

out가에 입력했던 함수가 될 것이다 : 여기에이 코드를 실행하면 내 입력과 출력으로 무엇을 얻을

out = 

x^2 + x + 3 

xi 초기 값 것 :

xi = 

4 

이 함수의 파생어는 def에 저장됩니다.

def = 

2*x + 1 

마지막으로, 우리의 파생 상품으로 우리의 초기 값을 대체는 dxi에 저장되고, 따라서 제공 :

dxi = 

9 

행운을 빕니다!

+0

'input'은 입력을 숫자가 아닌 문자열로 지정하기 위해''s'' 인수를 가져야합니다. – am304

+0

@ am304 - 처음에는'syms x'를 정의하는 한''s '' 플래그는 필요하지 않지만''s ''을 넣는 것이 아마 더 읽기 쉽고 가지고 다닐 수 있는. – rayryeng

0

도움이 될만한 내용이 있습니까?

eq = input('Write an equation in x','s'); %input a equation 
f = sym(eq);        %turn the equation into a symbolic one 
fin = inline(char(f));      %for converting the symbolic function into inline funct 
dfin = inline(char(diff(f)));    %for converting the symb diff func into inline diff f