Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
最適化コマンドの入力の形
最適化パッケージで計算できる問題の入力の形についての概要を述べます。それぞれの形について詳しくは Optimization/AlgebraicForm, Optimization/OperatorForm, および Optimization/MatrixForm を参照ください。
代数式
代数式は最適化問題を与える中で最も使われる形です。The および は sin(x+y) または v^2+exp(v) のような代数式の形で与えられます。
代数式はすべての最適化パッケージで使うことができます。また代数式は Optimization[Interactive] によるアプリケーションで使うことのできる唯一の形です。
最適化パッケージの中のソルバによる計算は浮動小数要素のベクトルおよび行列を使います。代数式で与えられた問題はソルバによって行列に変換されます。正確なデータを与えたとしても数値によって計算した値を返します。
代数式について詳しくは Optimization/AlgebraicForm を参照ください。
オペレータの形
オペレータの形を使うと、目的関数および制約条件は 1 つ以上のパラメータを持ちスカラーを返す手続きで表されます。
オペレータの形を入力として許すのは次のコマンドです: Optimization[Minimize], Optimization[Maximize], Optimization[NLPSolve] および Optimization[LSSolve] です。この形を使うと、Minimize および Maximize コマンドは入力が線形関数であっても自動的に非線形関数が入力されたと仮定して、非線形計画法のソルバが呼び出されます。
オペレータで与えられた入力はソルバによって行列の形に変換されます。特に、手続きはベクトルに変換されます。
オペレータの形について詳しくは Optimization/OperatorForm を参照ください。
行列の形
行列の形で問題を指定することで、ソルバによって効率的に結果を出すことができます。しかし、入力が複雑になります。目的関数および制約条件をベクトルおよび行列、および手続きを指定すると解をベクトルで返します。
行列の形は Optimization[Minimize], Optimization[Maximize]および Optimization[Interactive] で使うことはできません。Optimization[LPSolve], Optimization[QPSolve], Optimization[NLPSolve] および Optimization[LSSolve] で使うことができます。
入力が行列の形で、要素が浮動小数の型ででないときは浮動小数のデータに変換されます。最適化ソルバは可能な限りハードウェア浮動小数使うことを試みます。行列やベクトルの不必要な複製を避けるため、最適化コマンドのヘルプページを見て適したデータの形を入力することを推奨します。
行列の形について詳しくは Optimization/MatrixForm を参照ください。
例
with(Optimization):
代数式で与えられる線形計画問題を解きます。目的関数および制約条件は x および y を変数とする関数です。
LPSolve(-4*x-5*y, {x+2*y<=6, 5*x+4*y<=20, x>=0, y>=0});
行列の形で与えられた線形計画問題を使って解きます。
LPSolve(<4,5>,[<<-3|1>,<5|1>>,<1/2,2>],[0,infinity],maximize);
2 次計画問題では代数式または行列の形の入力を使うことができます。
QPSolve(2*x+5*y+3*x^2+3*x*y+2*y^2,{x-y>=2});
QPSolve([<2,5>,<<6|3>,<3|4>>],[<<-1|1>>,<-2>],assume=nonnegative);
非線形問題では代数式または行列の形の入力を使うことができます。
NLPSolve(sin(x)^3-1/(1+x^4), initialpoint={x=2});
行列の形の入力で NLPSolve を使うときは、目的関数の勾配を使うべきです。
obj := proc(v) 10*v[1]^2 - 2*v[1]*v[2]^2 + v[2]^4 + 1 - 2*v[2] + v[2]^2 end proc: objgrad := proc(v, w) w[1] := 20*v[1] - 2*v[2]^2: w[2] := -4*v[1]*v[2] + 4*v[2]^3 - 2 + 2*v[2] end proc: NLPSolve(2, obj, objectivegradient=objgrad);
参照
Optimization, Optimization/AlgebraicForm, Optimization[Interactive], Optimization[LPSolve], Optimization[LSSolve], Optimization/MatrixForm, Optimization[Maximize], Optimization[Minimize], Optimization[NLPSolve], Optimization/OperatorForm, Optimization[QPSolve]
Download Help Document