エンジニアリング設計を改善する 1 つの方法は、最小化または最大化の問題の形で設計を記述する方程式を定式化することです。このアプローチは、設計の最適化と呼ばれます。最小化すべき量の例は、エネルギー消費と建設資材です。最大化すべき項目は耐用年数と橋梁が支えられる車両重量などの容量です。このプロジェクトでは、水槽の建設に関連する材料費を最小限に抑えるという問題を検討します。水槽は、半径r、高さhの円筒部分と半球状の天板で構成されています。タンクは満タン時に 500 立方メートルを保持するように構築されます。円筒部分の表面積は 2*pi*rh で、その体積は pi*r^2 です。半球の頂点の表面積は 2*pi*r^2 で与えられ、体積は 2*pi*r^3/3 で与えられます。タンクの円筒部分の建設費用は表面積 1 平方メートルあたり 300 ドル、半球部分の建設費用は 1 平方メートルあたり 400 ドルです。関数 fminbnd を使用して、コストが最小になる半径を計算します。対応する高さ h を計算します。
私は正しい答えを得ましたが、それは非常に混沌としています。たくさんの関数を作成しました。関数を 1 つ作成できるかな... 名前を「ONEFUN」にしましょう
function R = findR(x)
h = (1500-2.*pi*x.^3)./(3.*pi.*x.^2);
R = 2.*pi.*x.*(h) + 2.*pi.*x.^2+pi.*x.^2;
function H = findH(x)
H = (1500-2.*pi*x.^3)./(3.*pi.*x.^2);
function [Cc, Chs, Tc] = Costs(r,h) % Cc - Cost of Cylinder, Chs - Cost of Hemishpere,
%Tc - Total Cost
Cc = ((2.*pi.*r.*h) + (pi.*r.^2)).*300;
Chs = (2.*pi.*r.^2).*400;
Tc = Cc+Chc;
switch, response を使おうと思ったのですが、やり方がわかりません。
function Anwsers
response = input('Type "find r", "find h", "costHS", "costC", "total": ','s');
response = lower(response);
switch response
case 'find r'
Radius = fminsearch(@ONEFUN, [1]);
case 'find h'
Hight = findH(r)
case 'costHS'
case 'costC'
case 'total'
otherwise
disp('You have not entered a proper choice.')
end
私は感謝し、助けたいと思います