# Error using solve function

조회 수: 1(최근 30일)
댓글: Muhammad Rohaan 2022년 11월 29일
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)])

댓글을 달려면 로그인하십시오.

### 채택된 답변

Steven Lord 2022년 11월 29일
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표시숨기기 없음
it seems that i was taking a wrong variable. Thanks a lot.

댓글을 달려면 로그인하십시오.

### 범주

Find more on Symbolic Math Toolbox in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!