I cant get this matlab function to work.
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
I have to use fsolve() to call this function.
I want to input a guess for fsolve() and I want two answers for each of the equations for Rblas4(1) and Rblas4(2).
my error reads:
error: 'T' undefined near line 19 column 18
error: called from
arco at line 19 column 14
My script it:
function Rblas4=arco(T)
p=51;
v=35;
n=50;
r=.08206;
spv=v/n;
Tca=150.87;
wa=1.002;
Tcc=304.2;
Pcc=72.9;
Pca=48.3;
wc=.225;
aa=.42747*((r*Tca)^2/Pca);
ac=.42747*((r*Tcc)^2/Pcc);
ba=.08664*((r*Tca)/Pca);
bc=.08664*((r*Tcc)/Pcc);
ma=.48508+1.55171*wa-.1561*(wa-1)^2;
mc=.48508+1.55171*wc-.1561*wc^2;
RBlas4(1)=(r*T(1))/(spv-ba)-aa*(1+ma*(1-sqrt(T(1)/Tca)))^2/(spv*(spv-ba))-p;
RBlas4(2)=(r*T(2))/(spv-bc)-ac*(1+mc*(1-sqrt(T(2)/Tcc)))^2/(spv*(spv-bc))-p;
end
THANK YOU
채택된 답변
madhan ravi
2018년 12월 2일
편집: madhan ravi
2018년 12월 2일
EDITED
You should call the function properly with input T like shown below:
T=[3 8] %example
Rblas4=arco(T) %function call
function RBlas4=arco(T) %function definition
p=51;
v=35;
n=50;
r=.08206;
spv=v/n;
Tca=150.87;
wa=1.002;
Tcc=304.2;
Pcc=72.9;
Pca=48.3;
wc=.225;
aa=.42747*((r*Tca)^2/Pca);
ac=.42747*((r*Tcc)^2/Pcc);
ba=.08664*((r*Tca)/Pca);
bc=.08664*((r*Tcc)/Pcc);
ma=.48508+1.55171*wa-.1561*(wa-1)^2;
mc=.48508+1.55171*wc-.1561*wc^2;
RBlas4=[(r*T(1))/(spv-ba)-aa*(1+ma*(1-sqrt(T(1)/Tca)))^2/(spv*(spv-ba))-p; %change this line too
(r*T(2))/(spv-bc)-ac*(1+mc*(1-sqrt(T(2)/Tcc)))^2/(spv*(spv-bc))-p];
end
Note: matlab is case sensitive Rblas4 should be RBlas4
댓글 수: 9
madhan ravi
2018년 12월 2일
see edited answer it works
Rodrigo Blas
2018년 12월 2일
Well, I got it to out put something. thank you
sorry but maybe i didnt ord my quesiton right.
but I'm trying to make it so that fsolve() solves for T(1) and T(2). They are both unknown variables. The two equations that are in the Rblas4 matrix are equal to zero
madhan ravi
2018년 12월 2일
please upload the full code I'm having difficulty in understanding your question
This is in the editor:
function Rblas4=arco(T)
p=51;
v=35;
n=50;
r=.08206;
spv=v/n;
Tca=150.87;
wa=1.002;
Tcc=304.2;
Pcc=72.9;
Pca=48.3;
wc=.225;
aa=.42747*((r*Tca)^2/Pca);
ac=.42747*((r*Tcc)^2/Pcc);
ba=.08664*((r*Tca)/Pca);
bc=.08664*((r*Tcc)/Pcc);
ma=.48508+1.55171*wa-.1561*(wa-1)^2;
mc=.48508+1.55171*wc-.1561*wc^2;
Rblas4=[(r*T(1))/(spv-ba)-aa*(1+ma*(1-sqrt(T(1)/Tca)))^2/(spv*(spv-ba))-p;
(r*T(2))/(spv-bc)-ac*(1+mc*(1-sqrt(T(2)/Tcc)))^2/(spv*(spv-bc))-p];
end
In the command window:
guess=[10 10]
guess =
10 10
>> fsolve('arco',guess)
error: invalid call to script C:\Users\rodri\arco.m
error: called from
fsolve at line 204 column 8
This is the full code with your adjustments. I want it to return the actual value of T for both equations in Rblas4 matrix. Both equations are equal to zero are both equal to zero and T(1) and T(2) are unknown
This is an example of what i want it to do:
This example shows how to solve two nonlinear equations in two variables. The equations are
Convert the equations to the form .
Write a function that computes the left-hand side of these two equations.
function F = root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
Save this code as a file named root2d.m on your MATLAB® path.
Solve the system of equations starting at the point [0,0].
fun = @root2d;
x0 = [0,0];
x = fsolve(fun,x0)
Equation solved.
madhan ravi
2018년 12월 2일
편집: madhan ravi
2018년 12월 2일
change this
fsolve('arco',guess) % no strings to call the function ' ' should be @ -> function handle
to this
fsolve(@arco,guess)
Rodrigo Blas
2018년 12월 2일
new error:
fsolve(@arco,guess)
error: 'k' undefined near line 5 column 21
error: called from
norm at line 5 column 6
fsolve at line 207 column 6
>>
wierd this is the answer I got
>> COMMUNITY
Equation solved.
fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.
<stopping criteria details>
ans =
424.7032 458.5318
>>
Rodrigo Blas
2018년 12월 2일
got it! THANK YOU SO MUCH!
What happened is I didnt click run.
You were very helpful :)
madhan ravi
2018년 12월 2일
Anytime :)
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Genetic Algorithm에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
