Использование каждого элемента вектора в серии расчетов - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь написать код MATLAB, который использует набор переменных в векторе в расчете.Я пытаюсь запустить одну и ту же формулу для каждого значения в векторе, а затем сохранить каждый результат в новом векторе.

Цель состоит в том, чтобы рассчитать и построить график строительства резервуара для воды на основе различных размеров радиуса.В расчетах у меня цилиндрический резервуар и полусферический верх.Точное значение объема резервуара составляет 500 м ^ 3.Стоимость резервуара составляет 400 долларов США / м2 поверхности для полусферического верха и 300 долларов / м2 поверхности цилиндра.Я знаю, что мне нужно использовать поэлементные операторы, однако я получаю странные, нереалистичные результаты, которые заставляют меня думать, что я использую их неправильно.

rTank = 2:0.5:10;
h = ((250./(pi.*rTank(:)))-((rTank(:).^2)./3));
cost = ((2*pi*400.*(rTank(:).^2))+(2*pi*h(:).*300.*rTank(:)));
plot(rTank,cost)

Я ожидаю кривую всех положительных значений между радиусами 2 ми 10 м, с положительными значениями стоимости.По какой-то причине я получаю отрицательные значения для результатов, и согласно полученному графику стоимость резервуара для воды является бесплатной, когда радиус равен 8 м, что не имеет смысла.

1 Ответ

0 голосов
/ 13 июня 2019

Отфильтровать h <0 </p>

rTank = 2:0.5:10;
h = 250./(pi*rTank)-1/3*rTank.^2;
good_h=h(h>0);
good_rTank=rTank(h>0);
cost = 2*pi*400*good_rTank.^2 + 2*pi*good_h*300.*good_rTank;
plot(good_rTank, cost)
...