主要内容

함수를파라미터화하기

개요

여기에서는fzero또는不可缺少的과matlab®함수(功能函数)에전달수학함수에추가를저장하거나하는방법에대해설명합니다합니다。

MATLAB함수(函数)는는값수학계산합니다합니다합니다합니다。이러한함수핸들(함수에포인터)을을으로받으므로받으므로함수(函数函数)”라불립니다。이들함수목적특정개수입력변수가진다고합니다합니다합니다。예를,fzero不可缺少的은정확히입력를가지는에핸들을받습니다받습니다。

계수b와c의다양값에대해다항식다항식x x x3+Bx+c의영점(零)을구하고자고하겠습니다。3개(x,b및c)를를를수있더라도이러한입력값값값값값개를모두핸들핸들핸들핸들핸들을fzero에전달수는없습니다。하지만,익명함수나의을잘추가입력을정의하는게가능할있습니다있습니다。

중첩함수사용하여파라미터화하기

파라미터를한방법은프로그램파일함수내에완전히포함함수인중첩함수를사용것입니다。이예제에서부모함수Findzero와중첩함수poly를포함하는findzero.m이라는파일만듭니다。

功能y = findzero(b,c,x0)y = fzero(@poly,x0);功能y = poly(x)y = x^3 + b*x + c;结尾结尾

중첩함수하나의입력변수X를를하는하는차을합니다합니다。부모함수는파라미터bC를입력으로받습니다。Findzeropoly를중첩는함수가부모함수작업을공유때문입니다입니다입니다。따라서,사용자사용자Findzero에전달하는bC의값을poly함수가액세스수있습니다。

시작점x0 = 0을사용하여b = 2C = 3.5에서다항식영점을구하려면에서에서Findzero를호출됩니다。

x = findzero(2,3.5,0)
x = -1.0945

익명함수사용하여파라미터화하기

추가파라미터액세스수있는다른접근방식은익명함수를사용것입니다。익명함수의파일을만들지단일으로정의수있는함수입니다입니다。익명함수작업에서사용할모든변수를수있습니다있습니다있습니다。

예를를를다음과같이차을하는함수에대한핸들을만들고(零)을구한다고하겠습니다하겠습니다하겠습니다하겠습니다하겠습니다

b = 2;C = 3.5;cubicpoly = @(x)x^3 + b*x + c;x = fzero(Cubicpoly,0)
x = -1.0945

변수立方体는하나의값X를가지함수에함수입니다입니다입니다。익명함수입력값함수핸들을만드는@기호바로에묶여됩니다됩니다。立方体를만들때bC가작업있으므로함수에는이러한대한입력값하지않습니다않습니다않습니다。

익명함수사용하는경우변수변수立方体를반드시해야것아닙니다아닙니다。대신,fzero호출구문핸들대한전체정의바로시킬수있습니다있습니다。

b = 2;C = 3.5;x = fzero(@(x)x^3 + b*x + c,0)
x = -1.0945

익명함수하여파일에정의둔더목적를호출할수도있습니다있습니다。예를,다음다음정의포함하는하는Cubicpoly.m이라는파일가지고고하겠습니다하겠습니다。

功能y =立方体(x,b,c)y = x^3 + b*x + c;结尾

명령줄에같이bC를정의한후立方体를불러오는함수를사용하여fzero를호출합니다。

b = 2;C = 3.5;x = fzero(@(x)Cubicpoly(x,b,c),0)
x = -1.0945

참고

파라미터의변경새함수함수합니다합니다합니다。예를다음과같습니다。

b = 10;C = 25;x = fzero(@(x)x^3 + b*x + c,0);

관련항목