• ベストアンサー

Excelソルバー条件文「4つの不等式のうち1つ以上が成立させる方法をお教えください」

例えば、 x + w < y y + w < x x + h < y y + h < x の4つの不等式のうち1つ以上が成立するようなプログラムをExcelソルバーで作りたいのですが、可能なのでしょうか? どうかご回答よろしくお願いいたします。 現在私は卒業研究でオペレーションズリサーチという分野の研究をしておりパッキング問題でどうしてもこの条件文が必要です。 試してはみたものの良い方法が見つかりません。

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

  • ベストアンサー
  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.1

簡単です。 ソルバーは、ワークシートの計算式とソルバーのダイアログの掛け合わせで、条件を記述すれば良いのです。 計算式の記述の仕方はいくらでもありますが、分かりかりやすい以下のやり方です。 4つのセルに4つの不等式をIF関数で記述し、成立すれば1、成立しなければ0にします。 その4つのセルの合計を求めます。 ソルバーのダイアログの「制約条件」で、その合計セルが1以上という条件を記述すればいいのです。

ciaopanic
質問者

お礼

たしかにその方法で可能ですね。私には思いもつきませんでした。 早速試してみます。 わざわざありがとうございました。 これで研究も捗りそうです♪

関連するQ&A

  • 等号の成立条件

    コーシー・シュワルツの不等式の等号の成立条件がわからないので質問します。a^+b^+c^=1,x^2+y^2+z^2=1のとき 不等式-1≦ax+by+cz≦1を証明せよ。という問題で、不等式の証明はできたのですが、等号の成立条件がわからなかったです。左の等号が成り立つのは、a:b:c=-x:-y:-zかつa^+b^+c^=1かつx^2+y^2+z^2=1のとき。右の等号が成り立つのは、a:b:c=x:y:zかつa^+b^+c^=1かつx^2+y^2+z^2=1のとき。左の等号の成立条件のa:b:c=-x:-y:-zがわかりません。インターネットで少し調べて、→u=(a,b,c),→v=(x,y,z),→uと→vのなす角θとして内積よりコーシー・シュワルツの不等式を調べてみたのですが、分からなかったです。どなたか、左の等号の成立条件を教えてくださいお願いします。

  • ソルバーを用いデータを近似する方法

    題記内容をソルバーで実施したいのですがどのように条件を立てたら良いか又、どのように数式を立てるべきかがわからず困っています。 どのような物を近似したいのか例を挙げると… 計算上の流量(kg/毎時)と実測値(kg/毎時)を近似させたい。 私がソルバー以外で近似させた例 計算上の流量が入力された列(x軸)と実測値が入力された列(y軸)を選択しグラフ(散布図)を挿入し、近似曲線(1次関数)を表示させるのですが各点と1次近似線とのバラツキ(他の変数の影響と見られる差)が有るためこのような方法は採用できません。 上記のような計算をソルバーで求めている例を拝見したことがあるのでソルバーを用いようと思ったのですが、大学数学もろくに理解していない為、質問したいこともよくわからなくるのですが… とりあえず質問したいことは、計算数値を実測値にソルバーで近似する場合、どのような式を立て、どのような条件を立てれば良いのか?です。 又、その式はどのような根拠で立てたものか教えて頂ければ幸いです。 ついでですが、統計、データの収集にあたり必要な数学分野があれば教えて頂きたいです。(ググります)

  • IF文での条件の書き方について(fortran)

    条件 (1)exp(-at)<x  (2)exp(-bt)<y と二つの条件があるとする. (a,b,x,yは定数とし,tは時間でdo文でまわすとする) 例えば,IF( (1) .AND. (2) )THENとすれば,「(1) かつ (2)」となり,つまり,「時間的に,(1)・(2)がどちらが先に条件を満たしたとしても良い」とういうことですよね. 今回,私が作ろうとしているプログラムは 「(1)が先に条件を満たした後に,(2)の条件を満たすなら」というIF文を作りたいのです.( (2)の条件が先に満たしてしまう場合は除きたいということです) こういう場合はどういった表記をすればよいのでしょうか. 下手な文章で読みにくいかもわかりませんが,アドバイスをお願いいたします.

  • A<Bは-B<A<Bの時成立するか

    不等式の証明でわからないところがあるので質問します。 問題は、x,yを実数として、x^2+y^2<2ならばx+y<2を証明するというものです。自分はコーシーの不等式を使って、(x^2+y^2)(1^2+1^2)≧ (x+y)^2, 4>(x+y)^2, -2<x+y<2としてしまったのですが、これでx+y<2を証明できているのか不安です。-2<x+y<2が成り立つときx+y<2が成立しているか、どなたか教えてくださいお願いします。

  • 不等式

    不等式x-y+1>0と(x^2)+(y^2)-4≦0 を満たす整数(x、y)の組数は? (x^2)+(y^2)-4≦0は 円の方程式ににているとおもいます これにx=0,1,…と代入するのでしょうか? でもそれだと (1,0)と(2,0)しか成立しないかんじですが おしえてください

  • if文の条件式について

    iPhone OS 3.0、Xcode 3.1.3という環境でobjective-cをベースとしてiPhone向けアプリケーションを作る研究をしています。 どちらかというとC言語の質問になりますが、if文で使う条件式にNSString型で宣言した文字列を使うにはどうすればいでしょうか? NSString *startArea = [[NSString alloc] initWithFormat:@"pt.x > 224 && pt.y < 100"]; というコードでstartAreaに代入されたpt.x > 224 && pt.y < 100という文字列をif文の条件式として使えればと思ってます。 ちなみに、、、 if( startArea ){ 実行したい命令 } という記述をしたところ、ビルドエラーは発生しませんでしたが条件が無視されてしまいました。 他にコードの間違いがあるかもしれませんが、まずはこの内容で判断をお願いします。

  • 方程式

    不等式x-y+1>0と(x^2)+(y^2)-4≦0 を満たす整数(x、y)の組数は? (x^2)+(y^2)-4≦0は 円の方程式ににているとおもいます これにx=0,1,…と代入するのでしょうか? でもそれだと (1,0)と(2,0)しか成立しないかんじですが おしえてください 負もあるそうですがよくわかりません

  • 数学の宿題です 

    不等式√x^2+y^2≧x+y+a√xyが任意の正の実数x,yに対して成立するような、最大の実数aの値を求めよ(√は左辺はy^2まで、右辺はyまで) 全くわからないのでだれか教えてくださいm(__)m

  • プログラムについてですが・・・

    今、画像処理の最小二乗法のプログラムを作成しているのですが、どうも上手く出力されません。以下のプログラムが、メインのプログラムでして、余分な #include は気にしないでください。画像の表示自体のプログラムは特に問題はありませんでしたので省きました。このプログラムにどんな問題があるか、わかりません。どなたか教えてください。 お願いします。 #include <math.h> #include <windows.h> #include <commdlg.h> #include <memory.h> #include <dos.h> #include <time.h> #include <wchar.h> #include <stdio.h> #include <iostream.h> #include "../DibFile.h" #include "ImageSDK.h" int n,n4,n5,n6,n7,n8,n9 ; double n10,n11 ; int n0[1000],n1[1000],n2[1000],n3[1000] ; n = 0 ; for(y = 0 ; y < h ; y++){   for(x = 0 ; x < w ; x++){ i = x+y*w ; if( *(buff1+i) == 0x00 ){                n0[n] = x ;                n1[n] = y ;                n2[n] = x*x ;                n3[n] = x*y ;                ++n ; } } } n5 = 0 ; n6 = 0 ; n7 = 0 ; n8 = 0 ; n9 = 0 ; for(n4 = 0 ; n4 < n ; n4++){ n5 += n2[n4] ; n6 += n0[n4] ; ++n7 ; n8 += n3[n4] ; n9 += n1[n4] ; } if((n6*n6-n7*n5) != 0){  n10 = ((n9*n6)-(n7*n8)) / ((n6*n6)-(n7*n5)) ;  n11 = (n8-(n5*n10)) / n6 ; for(x = 0 ; x < w ; x++){   y = (int) (n10*x+n11) ;    if(y < h && y > 0){  *(buff1+(x+y*w)) = 0x80 ;    } }

  • return {c : c, h : h}について

    私以外が作ったjavascriptプログラムでこのように書かれていました。 var h = null; var c = null; //省略 return {c : c, h : h} このreturn文のところの意味を知りたいのです。 {x : x, y : y}という形式でプログラムすると、 どのような条件として判断されるのでしょうか? このプログラムの意味が分かりませんでした。 もしよろしければ、教えて頂けませんか。 よろしくお願い致します。