| 제목 | 답변완료 연립방정식 solve코드 | ||
|---|---|---|---|
| 질문유형 | 강좌내용 | 교수님 | 권준표 |
| 과목 | 매트랩 | 강좌명 | |
| 작성자 | 김*훈 (e******2) | 등록일 | 2018-08-21 12:33 |
|
symbolic기능을 연습하기위해 열전도에서 간단한 연립방정식에 적용해보려고 하였습니다.
주어진 경계조건은 T1(0)=77,T2(0.8)=300,T1(0.65)=T2(0.65), k1A1dT1(0.65)/dx=k2A2dT2(0.65)/dx 인데요. 아래 처럼 심볼릭 기능을 이용하여 온도를 우선 미분을하고 각각 dT1,dT2라고 하였고 SUBS기능을 활용하여 경계조건인 0 0.65 0.8를 X에 대입한 식을 각각 s1 s2 .... 으로 나타내었는데요. 이 경우 solve(eq1,eq2,eq3.....)이런 것인데 저는 c1,c2,c3,c4에 대한 해를 얻고싶은게 목적인데 아래의 코드를 돌리거나 혹은 식을 나열한후 내가원하는 변수 c1을 마지막에 추가하여도 0x1매트릭스가 나옵니다. 무엇이 문제일까요? solve(f1,f2)만 실행할경우 c2와 p2에 대하여 값이 나오는데 f3를 추가하는 경우 나오지 않습니다..
clear,clc,close ALL syms x1 x2 c1 c2 c3 c4 A1 A2 k1 k2 p1 p2 I T1=-(p1*I^2)/(2*A1)*x1^2+c1*x1+c2; T2=-(p2*I^2)/(2*A2)*x2^2+c3*x2+c4; dT1=diff(T1,x1); dT2=diff(T2,x2); S1=subs(T1,{x1},{0}); S2=subs(T2,{x2},{0.8}); S3=subs(T1,{x1},{0.65}); S4=subs(T2,{x2},{0.65}); S5=k1*A1*subs(dT1,{x1},{0.65}); S6=k2*A2*subs(dT2,{x2},{0.65}); f1=S1-77f2=S2-300 f3=S3-S4 f4=S5-S6 solve(f1,f2,f3,f4,c1,c2,c3,c4) 답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다. |
|||
- 댓글
- 0
안녕하세요?
기초문법에 관련된 질문이여서, 직접 답변 드립니다.
solve 함수에 대한 코딩오류 입니다.
f1의 값이 0이지요? f2, f3, f4의 값도 모두 0 이여야 할 것입니다.
이것에 대한 정의가 없어서, 오류가 난 것입니다.
아래 예시를 자세히 보시기 바랍니다.
syms x
equ = x^3 -6*x^2 + 11*x - 6 == 0;
solx = solve(equ, x)
올려주신 스크립트를 한 번 수정해 봤는데, 의도하신 것인지는 잘 모르겠네요.
입력된 변수에 비해, 공식이 너무 적어서 해가 공식으로 나오고 있습니다.
clear,clc,close ALL
syms x1 x2 c1 c2 c3 c4 A1 A2 k1 k2 p1 p2 I
T1 = -(p1*I^2)/(2*A1)*x1^2+c1*x1+c2;
T2 = -(p2*I^2)/(2*A2)*x2^2+c3*x2+c4;
dT1 = diff(T1,x1);
dT2 = diff(T2,x2);
S1 = subs(T1,x1,0);
S2 = subs(T2,x2,0.8);
S3 = subs(T1,x1,0.65);
S4 = subs(T2,x2,0.65);
S5 = k1*A1*subs(dT1,x1,0.65);
S6 = k2*A2*subs(dT2,x2,0.65);
f1 = S1-77 == 0;
f2 = S2-300 == 0;
f3 = S3-S4 == 0;
f4 = S5-S6 == 0;
solve(f1, f2, f3, f4, c1, c2, c3, c4)
- 2018-08-21
- 2024-12-12 수정























