複数条件から最適化する方法について

このQ&Aのポイント
  • 複数条件から最適化する方法について説明します。
  • 複数条件を考慮して最適な解を求める方法について詳しく教えてください。
  • VB6.0環境で複数条件を満たす最適解を求める方法についてアドバイスをお願いします。
回答を見る
  • ベストアンサー

複数条件から最適化する方法について

複数条件から最適値を得る方法が分かりません(実際は、最小二乗法ですが、以下に記すa,bについて解が得られないような関数を用いています[Mathematicaでも解けなかったです]) S(a,b)という関数を作っています。 また S(a-da,b) S(a+da,b) S(a,b-db) S(a,b+db)を作ります。 S(a,b)が最小となるときは、a=a,b=bとすればいいのですが、実際は、それ以外の関数が最小となることが多いです。そこで、例えば S(a-da,b)が最小となるときは、a=a-dz,b=bとして全ての関数を計算しなおし、ループさせようとしているのですが、条件が多すぎてどのVisual Basic関数を用いていいのか分かりません。 お手数ですが、ご教授お願いいたします。 なお、環境はVB6.0です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

S(a,b) という関数は、 Function S(a,b) As double という意味なのでしょうか? それなら、微分すればいいように感じます。 ただ、どうも、違うようなのですが、どういう意図の質問かを把握しかねます。

neo2005
質問者

お礼

ご返事ありがとうございます。 実はFunctionという関数についてよく知りませんでしたので、現在勉強中です。 とりあえず、ifとselectを組み合わせてDo~Loopさせると上手くいきました。 まだまだ初心者なので、質問の意図が伝わらないかもしれませんが、今後ともよろしくお願いします

関連するQ&A

  • 複数条件の関数を教えてください!

     B      C    D     E      F      G      H 会員NO フリガナ 氏名 前月来店 前月購入 当月来店 前月購入 上記のような並びで会員データが多数あり2ヶ月の購入金額 の実績によりランクをA列に出す関数をお教えください。 ●購入金額ランク基本条件(当月、前月とも)            0~10000円→→→D       10001~20000円→→→C       20001~30000円→→→B       30001~50000円→→→A           50001~ 円→→→S 最終的にA列には 例えば、今月購入が70000円で前月が15000円であればSC       今月購入が0円で前月が32000円であればDA SS,SA,SB・・・・DB,DC,DDまで25種のランクが出きると思います。 関数初心者のため自分では出来ないのでお分かりの方ぜひ教えてください。 よろしくお願いいたします。

  • エクセル 複数の条件付で最小値を求めたい

    SMALL関数を使用し、最小値を求めようと思ったのですが、 以下のように複数条件で絞り込んで最小値を出したいと思います。 (A-Bの組み合わせ毎の最小値を出す) A  B  C 東京 渋谷 1000 東京 渋谷 2000 東京 葛飾 2000 東京 葛飾 2500 東京 葛飾 4000 ↓ 東京 渋谷 1000 東京 葛飾 2000 複数条件抽出の場合SUMPRODUCTを使用していますが、 どうにもSMALL関数を組み込むことができず、お力を お貸しください。よろしくお願いいたします。 バージョンはエクセル2003を使用しています。

  • 複数条件の集計について、教えてください。

    EXCEL初心者のため、どうか教えてください。     品名   サイズ  数量 ジャケットA  S   2 ジャケットA  M   3 ジャケットB  S   5 ジャケットB  L   5 このような表のとき、例えば「ジャケットAのSサイズは2つ」というように条件が複数ある場合の集計方法はないのでしょうか?? 集計結果を別表に作成したいのですが、DSUM関数を使おうとすると、上手くいきません。どうか、教えてください。

  • 複数条件で最小値を求める

    Excel2007です。 複数の条件をつけて最小値を求めたいです。配列数式を使います。 A列に体重、B列に性別、C列に住所だとして 男で東京都と神奈川という条件の中から体重の最小値を求める時、 {=MIN(IF((B1:B100="男")*((C1:C100="東京")+(C1:C100="神奈川")),A1:A100)}でCtrl+Shift+Enterで確定しました。 実際のデー量はもっと多いです。 たぶんきちんと計算されているようなのですが、自信がありません。 正しい数式になっているでしょうか? マクロは使わない方法でお願いします。

  • 関数の複数条件について

    たびたびご協力をお願いしておりますが よろしくお願いいたします!>< エクセルのIF関数などを使って以下の条件を満たす数式を作っていたのですが、 条件が変更になってしまい困っております。 【状態】 ・B2:E2の中に【空白、◎、●、▲】のいずれかが入っている ・条件によりF2に【S,A,B,C,ネタ】が入る 【条件】 ・S⇒すべて◎ ・A⇒3回連続した◎がある ・B⇒◎3つ以上だが連続していない ・ネタ⇒●が1以下かつ、◎がない ・Cがそれ以外 【困】 ~が無い、~を含まない時、という関数がうまく作れず、調べても出てきませんでした。 NOTでは?という結論に至ったのですが少し違うような気も……; 以前の条件が A:◎3つ以上 B:◎2つ以上、残りが● C:●3つ以上 ネタ:それ以下 であったので、長いのですが =IF(COUNTIF(M2:P2,"◎")>=3,"A",IF(AND(OR(COUNTIF(M2:P2,"◎")=2,COUNTIF(M2:P2,"◎")=1),COUNTIF(M2:P2,"●")>=2),"B",IF(COUNTIF(M2:P2,"●")>=3,"C","ネタ"))) で何とか構成しておりました。 アドバイス、お待ちしております。 【追伸】 ~以上、~以下の表記もうまく使えなかったのでこういった長い形になっているのですが もしよろしければ合わせてお教えいただけると幸いです。

  • 判定 複数条件

    IF関数の中に AND関数で条件を入れているのですが、 前者しか判定が機能していません。 F4セルについては実際は500と入力されています。 また、AND関数について 3段階に分けた場合は偽の判定しか出ませんでした。 IF(AND(SUM(E7:E23)<B4;"1100"<=F4;F4<"2000");"※";"") http://www.evernote.com/shard/s114/sh/57d89467-3940-4f3e-9467-48a6f4703ae4/b9f5cc164c12eea851ab32e6d6739e58

  • Mathematicaでの計算(行列)?

    Mathematicaで、すごく困っています。 sについての解を求めたい。a1,a2,a3,a4はそれぞれwについての関数。 Solve[s^4+a1*s^3+a2*s^2+a3*s+a4==0,s] ここまでは4乗故、汚い解ながら、一応数値解は得られました。 ここで、wを1列のデータに置き換えて、a1,a2,a3,a4は4列の数値になりました。 同じようにsについて解きます。 Solve[s^4+a1[[i]]*s^3+a2[[i]]*s^2+a3[[i]]*s+a4[[i]]==0,s](?) For文やTableなどいろいろ試して見ましたが、全然出来ません。質問が意味不明な点ありましたらお答えします。 sが求まらないと、次に進めません。期限が迫っていますので、切実です。 どなたか詳しい方よろしくお願いします。

  • 制約条件のある連立多元方程式の解法2

    連立多元1次方程式で制約条件がある場合について 再度質問させてください。 未知数をx1,x2,x3、その他はある定数で、 a1・x1+b1・x2+c1・x3 = A a2・x1+b2・x2+c2・x3 = B a3・x1+b3・x2+c3・x3 = C 制約条件が0<x1,x2,x3<1としたときの解法を前回伺いましたが、 ご回答で、 「まず方程式の解(x1=z1,x2=z2,x3=z3)を得たあと 制約条件を満たすもっとも近い解は、 距離の2乗= (z1-x1)^2 + (z2-x2)^2 + (z3-x3)^2を最小にする x1,x2,x3を求める問題に帰着されます。」 さらにシンプレックス法を使えばと言うアドバイスを頂きました。 そこでシンプレックスについていろいろ見てみましたが、目的関数がこのように2次になっている場合は良く分かりませんでした。 どうすれば良いのでしょうか?

  • 数学 値

    xについての方程式 xの2乗-px+2p=0 の二つの解をa,Bとするとき aの2乗+Bの2乗の値を最小とするpの値を求めよ。 やり方が全くわからないので教えてください。

  • エクセル 複数条件

    教えてください!!    A列  B列  C列 1  済   B   100   2       A   200 3       B   100  4  済    A   200 5       C   100 A列が空白で、B列に「A」と「B」が入力されている、C列の合計を求める関数がわかりません。 B列にAとBが入力されているC列の合計は「=SUMIF(A1:A5,"A",C1:C5)+SUMIF(A1:A5,"B",C1:C5)] で求めることができました。この条件に「A列が空白(未入力)」の場合という条件を加えたいのです。 関数覚えたてなので解りやすく教えていただければありがたいです。 よろしくお願いします。

専門家に質問してみよう