이 공식에서 Matlab으로 C를 어떻게 구하나요??

이 공식에서 Matlab으로 C를 어떻게 구하나요??

작성일 2005.05.19댓글 1건
    게시물 수정 , 삭제는 로그인 필요

밑에 4개는 조건이고 위의 2개로 C를 구하는 건데요..

이것을 매트랩으로 푸는 방법이 있는가 궁금해서 여기에 올려봅니다..

solve를 이용하면 구할 수 있을 것 같아 해보니 안되더군요...

제가 잘못한것일 수도 있겠지만요.. ^^;;

고수님들의 조언 부탁드립니다..

제가 해본 소스입니다.. (울트라 허접..켁)

syms C;
R=100;
Alpha=asin(1-0.01/sqrt(2));
Omega=2*pi*60;
Theta=atan(-Omega*R*C);
C=solve('sin(Theta)*exp(-(pi+Alpha-Theta)/(Omega*R*C))-sin(alpha)=0')

 

그냥 그대로 적었습니다..

어떻게 해야 되나요?? ㅡㅜ 부탁드립니다..

C를 구하는 매트랩이 아닌 다른 방법이 있으면 그것도 좀 갈켜주세요..

공학계산기(좀 싼거)로도 해보니 답이 안나오네요..



profile_image 익명 작성일 -

nonlinear eq이므로, symbolic으론 못할 겁니다.
numerical method를 써야죠.

식을 보니, C = (-1/wR) * tan(theta)이고,
첫째 식에 대입할 수 있네요. 그러면 theta에 대한 1차원식이 나옵니다.

f(th) = sin(th)*exp(-(pi+a+th)/tan(th)) + sin(a)라 할 때,
f(th) = 0의 해를 구하는 것이죠.

(th = -theta, a = alpha, w = omega, th를 생각하기 쉽게 양수로 놨습니다.
R, C가 양수일 것이므로, th도 양수여야 합니다.)

맷랩 optimization toolbox에는 비선형 연립방정식의 해를 구하는 것이 있지만, 역시 문제는 가능하면 차원을 줄이는 게 풀기가 쉽습니다.
왜냐구요? plot해보고 해가 몇 개인지, 어느 근처인지 알 수 있기 때문이죠.
다차원으로 가면 이 작업이 힘듭니다.

어쨌든, 1차원은 toolbox까지 갈 것 없이, fzero 쓰시면 됩니다.

R=100;
a=asin(1-0.01/sqrt(2));
w=2*pi*60;

sin(a)

d = 0.001;
th = [d:d:pi/2, pi/2-eps];
th = [th, th + pi];
f = inline('-sin(th).*exp(-(pi+a+th)./tan(th)) - sin(a)', 'th', 'a');

plot(th, f(th, a), '.');

th0 = 1.5*pi;
format long;
th0 = fzero(f, [th0-1E-3, th0-eps], optimset('tolx', 1E-8), a)

그림을 그려보면, th = -theta = 1.5 pi 근처에서 해가 있군요.
따라서 1.5pi - 1E-3과 1.5pi 사이에서 해를 찾으라고 fzero에게 전하면 됩니다.

결과는 th0 = 4.711626이군요.


추가합니다.
-------------------------------
th = [d:d:pi/2, pi/2-eps];
eps는 아주 작은 수(약 10^-16)라고 보시면 됩니다.
해를 찾을 함수 f(th)가 pi/2에서 분모(tan(th))가 0이 되므로, 0으로 나누는 것을 피하는 겁니다.
:, []는 행렬을 만드는 연산자입니다.
예) 1:2:5 --> 1에서 2간격으로 5까지
[[1 2 3], [4 5 6]] = [1 2 3 4 5 6]

끝으로 inline부분은 inline함수를 만드는 것인데,
fun = inline('sin(x^2)')
fun(1)은

따로 fun.m파일
function y = fun(x)
y = sin(x^2)
이렇게 만들 필요없이 한 m파일 내에서 함수를 만들기 위한 것이죠.

fzero사용법은 helpdesk 도움말을 참고하세요.

이 공식에서 Matlab으로 C를 어떻게...

... C=solve('sin(Theta)*exp(-(pi+Alpha-Theta)/(Omega*R*C))-sin(alpha)=0') 그냥 그대로 적었습니다.. 어떻게 해야... 다차원으로 가면 작업이 힘듭니다. 어쨌든...

기호 어떻게 구하나요? 같 다 공식말...

... b의 값만 구하는 법은 없어요 대신 방법을 알려드릴께요 ax²+bx+c =a(x²+bx/a)+c =a(x+b/2a)²-b²/4a +c 여기서 그래프의 축이랑 a값만 안다면 b를 알 수 있어요 보통...

지진에너지 공식에서 상수 C 구하는 방법

logE = 1.5M + C ( 상수 )라고 나오는데 상수 C는 지진의 종류나 뭐 그런 거에 따라 다르게 나타난다는데 상수 C는 어떻게 구하나요?? 세특 발표할 때, 모른다고 할 수는 없으니까....

외접원 반지름 길이 어떻게 구하나요??

... 길이가 어떻게 주어졌는지 알 수 없으므로, 구체적인 답변을 드리기 어렵습니다. 세 변의 길이가 주어진다면, 헤론의 공식과 반지름에 대한 공식을 사용하여 계산해보시면...

중력으로 인한 시간지연 공식

... 시간지연은 어떻게 구하나요? 일반 상대성이론에 따르면, 중력장 내에서의 시간... 이 공식은 '중력적 레드시프트'라고도 알려진 현상을 설명합니다. 현상은 중력장이...