5. 방정식의 해 구하기
가. fzero – 1변수 방정식
1. 함수: fzero(‘함수’,x0) 또는 fzero(‘함수’,x0,오차). 방정식을 m-file로 작성 후 명령 실행
2. 예제
<m-file 내용>
function f=fun(x)
f=(sin(x)^2+cos(x)-1)/(12+2*sin(x))^4;
>> fzero(‘fun’,2) %초기값 2부터 시작하여 f가 0이 되는 해를 구함
ans = 1.5708 % 결과값: x = 1.5708
>> fzero(‘fun’,4) %초기값 4부터 시작하여 f가 0이 되는 해를 구함
ans = 4.7124 % 결과값: x= 4.7124
나. fsolve – 비선형 연립방정식
1. 함수: fsolve(‘함수’,x0) 또는 fsolve(‘함수’,x0,options). 방정식을 m-file로 작성 후 명령 실행
2. 예제
<m-file 내용>
function f=funs(x)
f=[2*x(1)-x(2)-exp(-x(1));-x(1)+2*x(2)-exp(-x(2))];
>> x=fsolve(‘funs’,[-5;-5]) %초기값 x(1) -5, x(2) -5부터 처음 0이 되는 점의 값을 구함
ans = 0.5671; 0.5671 %결과값: x = [0.5671; 0.5671]
다. solve – 비선형 방정식
1. 변수 비선형 방정식 – x=solve(s)
예) >> syms x a b c
>> f=a*x^2+b*x+c;
>> x=solve(f)
x = -1/2*(b-(b^2-4*a*c)^(1/2))/a
-1/2*(b+(b^2-4*a*c)^(1/2))/a
>> pretty(x)
2. 비선형 연립 방정식 – [x1,x2,…,xn]=fsolve(f1,f2,…fn)
예) >> syms x y
>> f1 = x^2+y^2-4;
>> f2 = exp(x)+y-1;
>> [x,y]=solve(‘f1′,’f2’);
>> double(x);
ans = -1.8163
>> double(y);
ans = 0.8374
그래프 그리기)
>> ezplot(f1,[-3,3])
>> hold on
>> ezplot(f2,[-3,3])
>> axis equal
>> axis([-2,5 2.5 -2,5 2.5])
>> grid on