Solve function with variables

5 次查看(过去 30 天)
Emrecan
Emrecan 2012-8-7
syms c ho
S=solve('c^2/(2*R)+(2*delta_p*c*(pi-2))/(pi*Er)+ho-h_lk=0','w(i)=ho+(2*c*delta_p)/Er');
I am trying to solve variables in the equation, only c and ho are the unknown variables. w(i) is changing in the loop, and I want to calculate variable values continuously. Other varibles are the known and assigned values. How can I solve the problem? solve function currently wants everything numerical except the unknowns.
Thanks
Emrecan
  2 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2012-8-7
what are the unknown variables?
Emrecan
Emrecan 2012-8-8
c and ho are the unknown variables

请先登录,再进行评论。

回答(3 个)

Matt Fig
Matt Fig 2012-8-7
编辑:Matt Fig 2012-8-8
You can specify the variables of interest to the solve command.
S=solve('c^2/(2*R)+(2*delta_p*c*(pi-2))/(pi*Er)+ho-h_lk=0','w(i)=ho+(2*c*delta_p)/Er','c','ho');
To replace the indexed w, use:
S=solve('c^2/(2*R)+(2*delta_p*c*(pi-2))/(pi*Er)+ho-h_lk=0',sprintf('%f=ho+(2*c*delta_p)/Er',w(ii)),'c','ho');

Azzi Abdelmalek
Azzi Abdelmalek 2012-8-7
s1='c^2/(2*R)+(2*delta_p*c*(pi-2))/(pi*Er)+ho-h_lk=0',
s2=[num2str(w(i)) '=ho+(2*c*delta_p)/Er']);
s=solve(s1,s2,'c','ho')
  2 个评论
Emrecan
Emrecan 2012-8-8
I need something like num2str, but in this case it does not work.
Matt Fig
Matt Fig 2012-8-8
What does that mean, "It doesn't work"? Did you get an error? If so, what error? Did MATLAB crash? Did the computer catch fire? Please be more specific. Also, you might try SPRINTF as I show above.

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2012-8-8
syms c ho
S = solve(c^2/(2*R)+(2*delta_p*c*(pi-2))/(pi*Er)+ho-h_lk, ho+(2*c*delta_p)/Er - w(i), c, ho);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by