²é¿´: 2337  |  »Ø¸´: 9
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

swustxxl

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] ¡¾ÇóÖú¡¿VS2005ÊýÖµ¼ÆËã³ÌÐòµ÷ÊÔ¡¾¼±Ç󣡣¡£¡£¡¼Ó½ð±Ò¡¿

Êý¾ÝÄâºÏ³ÌÐò£¬ÔËÓÃÏֳɵĶ¯Ì¬Á´½Ó¿âLBFGS·¨£¨´øÔ¼ÊøµÄ£©£¬²Ù×÷ƽ̨ÊÇVS2005£¬½«ÆäÒýÈëMFCµ¥Îĵµ´íÎóµü³ö

ÎÒ½«Ëã·¨³ÌÐò±àÈëÁËCLoginDlg.CPPÖУ¬µã»÷button1£¬³ÌÐò¹Ø±Õ¶Ô»°¿òµ¯³öµ¥Îĵµ½çÃæ£¬ºǫ́ͬʱÍê³ÉÔËËã¡£

void CLoginDlg::OnBnClickedButton1()
{
        // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
        _tmain();
        CDialog::OnOK();

}
ÒÔÉÏÊÇCbuttonµÄ´úÂ룬±àÒëÊ×Ïȱ¨´íµÄÊÇ_tmain()λÖã¬ËµµÄÊDz»½ÓÊÜ0¸ö²ÎÊý£¬Õâ¸ö¹«¹²º¯ÊýµÄÔ­ÐÍΪ
int _tmain(int argc, _TCHAR* argv[])
{
     .........
     .........
     return 0;
}
ÎҸɴàÖ±½Ó¶ÔÔ­º¯Êý×öÁ˸͝£¬ÈçÏ£º
int _tmain()
{
     .........
     .........
     return 0;
}
ÔÚ½â¾ö·½°¸ÖÐÓÖÌí¼ÓÁËlbfgsb.libÎļþ£¬ÓÚÊDZàÒë¡¢Á´½Ó¶¼¿Éͨ¹ý£¬ÉõÖÁ¿ÉÒÔÔËÐУ¬µ«µã»÷button1£¬³ÌÐò¾Í»á±¨´í£¬µ¯³öÈç϶Ի°¿ò£º




Ëã·¨µÄ×î³õ³ÌÐòÊÇÕýÈ·µÄ£¬¿É±àÒë¿ÉÁ´½Ó¿ÉÔËÐУ¬½á¹ûÕýÈ·£»ÎÒ¿ÉÒÔн¨Ò»¸öWIN32¿ØÖÆÌ¨Ó¦ÓóÌÐòÖØÏÖËã·¨³ÌÐòµÄЧ¹û¡£Ö¤Ã÷Ëã·¨³ÌÐò±¾ÉíÎÞÎó£¬Ó¦¸ÃÊǶ¯Ì¬Á´½Ó¿âÔÚ¼ÓÔØµ½MFC³ÌÐòʱ³öÏÖÁË´íÎó¡£
Ï£ÍûÓиßÊÖÄÜÖ¸µãÒ»ÏÂ~~²»Ê¤¸Ð¼¤

ÒÔÏÂÊÇÎÒµÄMFC³ÌÐò¹ØÓÚÒýÈëËã·¨¶¯Ì¬Á´½Ó¿âºÍÖ´ÐÐÔËËãµÄƬ¶Î£¬×îºó¸½ÉÏÁËWIN32Ëã·¨³ÌÐòºÍÎÒ×Ô¼ºµÄMFC³ÌÐò£º

// LoginDlg.cpp : ʵÏÖÎļþ
//

#include "stdafx.h"
#include "xxl_try2.h"
#include "LoginDlg.h"

//#include "stdafx.h"
#include "iostream"
#include "memory.h"
#include "malloc.h"
#include "windows.h"
#include "math.h"

using namespace std;

// CLoginDlg ¶Ô»°¿ò

IMPLEMENT_DYNAMIC(CLoginDlg, CDialog)

CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
        : CDialog(CLoginDlg::IDD, pParent)
{

}

CLoginDlg::~CLoginDlg()
{
}

void CLoginDlg:oDataExchange(CDataExchange* pDX)
{
        CDialog:oDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
        ON_BN_CLICKED(IDC_BUTTON1, &CLoginDlg::OnBnClickedButton1)
END_MESSAGE_MAP()

// CLoginDlg ÏûÏ¢´¦Àí³ÌÐò
// LBFGS.cpp : ¶¨Òå¿ØÖÆÌ¨Ó¦ÓóÌÐòµÄÈë¿Úµã¡£
//¼ÆËãÌݶȱ£´æÔÚgÖУ¬¼ÆËãÄ¿±êº¯ÊýÖµ±£´æÔÚfÖÐ
//nÊDzÎÊý¸öÊý£¬xÊDzÎÊýÏòÁ¿
void fcn2(int n,double *x, double*t, double *y,double &f, double *g ){
        f=0;
        g[0]=0;
        g[1]=0;
        g[2]=0;
        g[3]=0;
        g[4]=0;
        g[5]=0;
        for(int k=0;k         {
                double tmp=y[k]-(x[0]*t[k]*exp(x[1]*t[k])+x[2]*t[k]*exp(x[3]*t[k])+x[4]*t[k]*exp(x[5]*t[k]));
                f+=tmp*tmp;
                g[0]+=-2*tmp*t[k]*exp(x[1]*t[k]);
                g[1]+=-2*tmp*t[k]*x[0]*exp(x[1]*t[k])*t[k];
                g[2]+=-2*tmp*t[k]*exp(x[3]*t[k]);
                g[3]+=-2*tmp*t[k]*x[2]*exp(x[3]*t[k])*t[k];
                g[4]+=-2*tmp*t[k]*exp(x[5]*t[k]);
                g[5]+=-2*tmp*t[k]*x[4]*exp(x[5]*t[k])*t[k];
        }

        return;
}

extern "C" void __declspec(dllimport)  __stdcall lbfgsb(int n,int m,double *x, double *l, double *u, int *nbd, double f, double *g, double factr, double pgtol, double *wa, int *iwa,char *task, int iprint,char *csave,bool *lsave,int *isave, double *dsave);

int main()//int argc, _TCHAR* argv[])
{
        const char dllPath[] = "lbfgsb.dll";

        //¼ÓÔØ¶¯Ì¬¿âÎļþ
        HINSTANCE hLibrary = LoadLibraryA(dllPath);
        if(hLibrary == NULL){
                int error =GetLastError ();
                cout<<"Error of LoadLibrary = "<
                cout<<"Can't find the dll file."<                 FreeLibrary(hLibrary);
                return -1;
        }

        /* £¨Èç¹û»ñµÃÕâ¸ö³ÌÐòµÄ¾ä±ú£©»ñµÃÕýÔÚÔËÐгÌÐòµÄ·¾¶ºÍÎļþÃû*/
        bool exePathOut=true;

        if(exePathOut){
                char exePath[1000] = "\0";
                GetModuleFileNameA(hLibrary,exePath,sizeof(exePath));
                cout<         }

        bool *lsave;
        char *task,*csave,*str;
        int n, m,iprint,*nbd,*iwa, *isave;
        double f, factr, pgtol,*x,*l,*u,*g,*wa,*dsave;
        double t[7]={1,1.5,2,2.5,3,3.5,5};
        double y[7]={10.78,80.35,58.81,43.04,23.05,12.35,6.61};

        iprint = 1;
        factr=1.0E+7;       
        pgtol=1.0E-5;
        f=0.0;

        n=6;
        m=10;

        nbd=new int[n];
        iwa=new int[3*n];
        x=new double[n];
        l=new double[n];//ÉèÖñäÁ¿ÏÂÏÞ
        u=new double[n];//ÉèÖñäÁ¿ÉÏÏÞ
        g=new double[n];
        wa=new double[2*m*n+4*n+12*m*m+12*m];
        dsave=new double[29];
        isave=new int[44];
        str=new char[60];
        csave=new char[60];
        task=new char[60];
        lsave=new bool[16];


        for(int i=0;i         {
                nbd=0;
                l=1.0;
                u=10;
        }

        for(int i=1;i         {
                nbd=0;
                l=1.0;
                u=10;
        }

        for(int i=0;i         {
                x=0.0E0;
        }

        sprintf(task,"%s","START";

        while(1){
                lbfgsb(n,m,x,l,u,nbd,f,g,factr,pgtol,wa,iwa,task,iprint,csave,lsave,isave,dsave);
                strncpy(str,task,2);
                if (strncmp(str,"FG",2)==0)
                {
                        fcn2(7, x,t,y,f, g );
                        continue;
                }
                strncpy(str,task,5);
                if(strncmp(str,"NEW_X",5)!=0)
                {
                        for(int i=0;i                         {
                                cout<<"x["<<                         }
                        break;
                }
        }

        delete[] nbd;
        delete[] iwa;
        delete[] x;
        delete[] l;
        delete[] u;
        delete[] g;
        delete[] wa;

        delete[] lsave;
        delete[] task;
        delete[] csave;
        delete[] str;
        delete[] isave;
        delete[] dsave;

        system("pause";
        return 0;
}

void CLoginDlg::OnBnClickedButton1()
{
        // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
        main();
        CDialog::OnOK();

}


ÕâÊdzÌÐò
http://good.gd/767141.htm
ÕâÊÇËã·¨µÄÕýÈ·³ÌÐò
http://good.gd/767144.htm

[ Last edited by swustxxl on 2010-10-20 at 10:47 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

swustxxl

½ð³æ (ÕýʽдÊÖ)

ÒýÓûØÌû:
Originally posted by gd88 at 2010-10-20 22:48:24:
1¡¢ÄãµÄÎÊÌ⣬¿ÉÒÔ¿¼ÂÇÈ¥CSDNÎÊÎÊ£¬
2¡¢ÊÇ·ñÅųýÊý¾ÝÀàÐ͵ÄÎÊÌ⣿
3¡¢Ò²ÓпÉÄÜÊÇfortran±àÒëÆ÷°æ±¾µÄÎÊÌ⣬È磺http://software.intel.com/en-us/forums/showthread.php?t=73197

Ò»°ãÇé¿ö£¬googl ...

ÎÒÎʹýCSDN£¬ÏÖÔÚ»¹Ã»ÈË»ØÌû

ÎÒÆäʵ²»ÊÇ×öFORTRANµÄ£¬ÉõÖÁ²»ÊÇרҵ×ö³ÌÐòµÄ£¬ÏÖÔÚÊÖÍ·ÉϵijÌÐòÒª´¦ÀíÏà¹Ø±³¾°ÏµÄÊý¾ÝÄâºÏ£¬ÐèÒªÓõ½Õâ¸ö¶¯Ì¬Á´½Ó¿â£¬½á¹ûÅöµ½Õâ¸öÎÊÌ⣬ÊÇÊøÊÖÎ޲ߡ£ÎÒÊÔ¹ýVS2005ºÍVC6£¬¶¼»á³öÏÖͬÑùµÄÇé¿ö£¬ÎʹýºÃ¼¸¸öÀÏʦҲ¶¼Ã»½â¾ö¡£
10Â¥2010-10-21 09:11:45
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 10 ¸ö»Ø´ð

magic7004

½ð³æ (Ö°Òµ×÷¼Ò)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-10-18 10:32:55
Ö±½Óµ÷ÓÃDLLÖеĺ¯Êý£¬ÐèÒªDLLµÄÍ·Îļþ(.h)ºÍ¿âÎļþ(.lib)
Á÷Ã¥²»¿ÉÅ£¬¿ÉŵÄÊÇÁ÷Ã¥ÓÐÎÄ»¯£¬ÓÐÎÄ»¯ÓÖBHµÄÁ÷Ã¥ÎÞµÐ~~£¡
3Â¥2010-10-17 09:27:00
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

magic7004

½ð³æ (Ö°Òµ×÷¼Ò)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-10-18 10:33:02
ÁíÍ⣬C++±àÒëÆ÷»á¶Ôº¯Êý¸ÄÃûµÄ¡£Â¥Ö÷¿ÉÒÔÓÃloadlibraryºÍgetprocaddressÀ´µ÷ÓÃDLLÖеĺ¯Êý¡£
Á÷Ã¥²»¿ÉÅ£¬¿ÉŵÄÊÇÁ÷Ã¥ÓÐÎÄ»¯£¬ÓÐÎÄ»¯ÓÖBHµÄÁ÷Ã¥ÎÞµÐ~~£¡
4Â¥2010-10-17 09:29:21
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

Ïë·ÉµÄÖí

ľ³æ (ÕýʽдÊÖ)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-10-18 10:33:11
ÎÒÖªµÀÒ»¸öÊýÖµ¼ÆËãÀà¿â¡¶VC++ÊýÖµ¼ÆËãÀà¿â¡·²»´í£¡Äã¿ÉÒÔÊÔÊÔ£¡»¹ÓоÍÊÇÄã¿ÉÒÔÁ¬½ÓMatlab£¡
5Â¥2010-10-17 14:25:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ¹ú×ÔÈ»ÆÀÉóÒâ¼û +7 wangmingqi 2026-08-28 8/400 2026-08-28 18:42 by zhuzg0628
[»ù½ðÉêÇë] ¹ú×ÔÈ»ÃæÉϸ´ÅÌ~»¶Ó­ÌÖÂÛ (½ð±Ò+15) +13 ÇçÌì¼ÓÓÍ 2026-08-26 14/700 2026-08-28 18:36 by huagongfeihu
[»ù½ðÉêÇë] ͶƱ:  ÓжàÉÙÈËÊǽñÌì²éϵͳ֪µÀ½á¹ûµÄ£¿ +16 °®¿´ÊéµÄ¿ÉÀÖ 2026-08-26 18/900 2026-08-28 17:09 by winsaint
[»ù½ðÉêÇë] Ϊʲô×ÊÖúÊý¸÷´ó¸ßУ¶¼´´Ð¸ߣ¬×Ô¼ºÉêÇëÔõô¾ÍÕâôÄÑ +11 Kittylucky 2026-08-27 12/600 2026-08-28 16:26 by lyxiaomc
[»ù½ðÉêÇë] Â鷳ר¼ÒÃÇ¿´¿´ÆÀίÃǵÄÒâ¼û£¨F¿ÚÃæÉÏ£© +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[»ù½ðÉêÇë] 2026ÄêÒ¶ÆóËï»ù½ð +3 bud_bud 2026-08-27 6/300 2026-08-28 11:53 by bud_bud
[»ù½ðÉêÇë] »ù½ðϵͳʲôÄÚÈÝҲûÓÐ 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[»ù½ðÉêÇë] Ôõô²é°¡ +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[»ù½ðÉêÇë] ÃæÉϺÏ×÷µ¥Î»¸ÇÕ +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[»ù½ðÉêÇë] ÉêÇëɾ³ý±¾Ìû +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by Äþ¾²ÖÂÔ¶sy
[»ù½ðÉêÇë] »ù½ðδÖУ¬ÕâÖÖ´ð¸´ÊÇÄ£°åÂ𣿠+5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[»ù½ðÉêÇë] ÄÜ·ñÍ˳ö²ÎÓëµÄÃæÉÏÏîÄ¿½â³ýÏÞÏî +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by ±¦±´³æ×Ó
[»ù½ðÉêÇë] Ϊʲô¹ú×ÔÈ»²»ÄÜÖ±½Ó¹«²¼ +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[»ù½ðÉêÇë] ¹úºÏÀïÃæÄÜ¿´µ½ÁË +7 Ò»»³Ü°Çï 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[»ù½ðÉêÇë] ϵͳ½ø²»È¥ +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[»ù½ðÉêÇë] ½ñÌìÎñί»á¿ªÍêÁË£¬Ã÷Ìì³ö½á¹ûÂð +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[Ö°³¡ÈËÉú] ѧÉúײ¼û¸¨µ¼Ô±ËÍÍâÂô£¬µÚ¶þÌìÈ«°à¶¼³ÁĬÁË +3 ¾¨ÓãÈÚ½ð_Õã½­_É 2026-08-22 3/150 2026-08-26 09:01 by zzuzxg
[»ù½ðÉêÇë] ÔÚ¼á±ù»¹¸Ç×ű±º£µÄʱºò£¬ÎÒ¿´µ½ÁËÅ­·ÅµÄ÷»¨¡£ (½ð±Ò+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[»ù½ðÉêÇë] Èç¹û´Ë¿ÌÄãÕýÔÚΪ¹ú»ù¸Ðµ½½¹ÂÇ£¬²»·ÁÀ´ÌýÌýÕâÊס¶»ù½ðÖ®Íâ¡· +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û