主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

비선형함수에대한연산

함수핸들

임의의MATLAB®함수에대한핸들을만든다음,해당함수를참조하는수단으로사용할수있습니다。일반적으로함수핸들은인수목록으로다른함수에전달되며,함수핸들을전달받은함수는핸들을사용하여해당함수를실행하거나평가할수있습니다。

MATLAB에서함수핸들을작성하려면함수이름앞에기호()를사용합니다。다음예제에서는함수에대한함수핸들을만들고이를변수fhandle에할당합니다。

fhandle = @sin;

함수이름을사용하여함수를호출하는것과같은방식으로핸들을사용하여함수를호출할수있습니다。구문은다음과같습니다。

fhandle (__arg1,最长,…);

아래나와있는인수와plot_fhandle은함수핸들과데이터를수신하고,함수핸들을사용하여y축데이터를생성한다음이를플로팅합니다。

函数plot_fhandle(fhandle, data) plot(data, fhandle(data))

아래나와있는함수핸들과인수를사용하여plot_fhandle을호출하면그결과로진행되는실행과정에서사인파플롯이생성됩니다。

plot_fhandle (@sin -π:0.01:π)

함수함수(函数功能)

“함수함수(函数函数)“라는함수클래스는스칼라변수로구성된비선형함수와함께사용됩니다。즉,함수하나가다른함수에대해동작하는것입니다。함수함수(函数函数)에는다음이포함됩니다。

  • 해찾기

  • 최적화

  • 구적법

  • 상미분방정식

MATLAB에서는비선형함수를,해당함수를정의하는파일로나타냅니다。예를들어,다음은matlab /演示폴더에있는함수的线条의내용을간단히나타낸것입니다。

函数y = humps(x) y = 1 /(x- 3)。^2 + 0。01 + 1 /(x- 0。9)^2 + .04) - 6;

다음을통해구간0≤x≤1내의점집합에서이함수를실행해보겠습니다。

x = 0: .002:1;y =驼峰(x);

그런후다음을통해함수를플로팅합니다。

情节(x, y)

그래프를보면x = 0.6근방에서함수가국소최솟값을갖습니다。함수fminsearch는함수의최소점(함수가최솟값을갖게되는x의값)을구합니다。fminsearch의첫번째인수는최소화할함수에대한함수핸들이고두번째인수는최솟값을갖는대략적인의x추측값입니다。

P = fminsearch(@humps,.5) P = 0.6370

최소점에서함수를계산하면다음과같습니다。

驼峰(p) ans = 11.2528

수치분석가들은정적분의수치근사와상미분방정식의수치적분을구분하기위해구적법적분이라는용어를사용합니다。MATLAB의구적법루틴은quadl입니다。다음명령문은

Q = quadl (@humps 0 1)

그래프에서곡선아래부분의면적을계산하며그결과로다음과같은결과가생성됩니다。

Q = 29.8583

결과적으로,그래프에서는함수가이구간에서0인적이없음을보여줍니다。따라서다음을통해0을찾으면(해를구하면)

z = fzero (@humps。5)

구간외부에하나가있음을확인하게됩니다。

z = -0.1316