Error using solve function

4 views (last 30 days)
Muhammad Rohaan
Muhammad Rohaan on 29 Nov 2022
Commented: Muhammad Rohaan on 29 Nov 2022
solve function for code
Gives the error: unable to find explicit solution.
x1 = input('Input volume of tank in gallons: ');
x2 = x1/7.48;
syms int_l;
cost = 812.745*(2*int_l.^2+4.*(int_l+0.5)*(y./(int_l.^2)+1));
diff_cost = diff(cost);
answ = solve(diff_cost == 0);
int_l = answ(isAlways(answ>0));
int_l = double(int_l);
int_h = x2/(int_l.^2);
ext_l = int_l + 1;
ext_h = x2./(int_l.^2)+1;
disp('----------------------------------------------------------------')
disp(['Length of the internal height in feet will be: ' num2str(int_l)])

Accepted Answer

Steven Lord
Steven Lord on 29 Nov 2022
You have two variables in your cost function, y and int_l. Is y symbolic or a fixed value? If symbolic, with respect to which variable do you want to differentiate the cost?
syms int_l y;
cost = 812.745*(2*int_l.^2+4.*(int_l+0.5)*(y./(int_l.^2)+1));
diff_cost = diff(cost)
diff_cost = 
diff_cost_y = diff(cost, y)
diff_cost_y = 
diff_cost_int_l = diff(cost, int_l)
diff_cost_int_l = 
The expressions diff_cost and diff_cost_y depend only on int_l but diff_cost_int_l depends on both int_l and y. If you're trying to solve diff_cost_int_l == 0, with respect to which variable are you trying to solve?
solve(diff_cost_int_l, int_l)
ans = 
solve(diff_cost_int_l, y)
ans = 
  1 Comment
Muhammad Rohaan
Muhammad Rohaan on 29 Nov 2022
it seems that i was taking a wrong variable. Thanks a lot.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!