⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readmefirst

📁 sqp程序包。用sqp算法实现非线性约束的优化求解
💻
字号:
In order to check correct installation on your system proceed as follows:Modify the Makefile according the needs of your machine.Then run "testcommand"  . This runs all the examples in the EXAMPLES directory and stores the results as *.pro and *.mes files in that directory. Then compare*.pro with *.pro~orig and *.mes with *.mes~orig. You must do that by inspection, not using "diff", since different optimizationtechniques of the compiler and the influence of roundoff effects will give results which are different in some of the last digits. This isunavoidable.  You may add more examples files to that directory and use "testsingle" inorder to run single examples. testsingle takes the name of theexamples-file (without the .c extension), copies that file to the localuserfu.c and then runs it. Observe that "userfu.c" required by the Makefile is a local copy of thefile containing the problem description. if you simply type "make exe"you will necessarily miss it.=================================================================bug reports to spellucci@mathematik.tu-darmstadt.de=================================================================This is a translation of the f77-version of donlp2.f as of 7/99to ANSI-C done by Serge Schoeffler with some minor subsequent corrections by P. Spellucci.Copyright of this version remains with P. SpellucciHence this version is free for research purposes, while commercialuses of any kind requires licensing by P. Spellucci resp. TU DARMSTADTThe description given in userguide.ps applies,with the exception noticed below (the problemdescription / coding must now include  eval_extern and solchk as well. follow the coding given in the examples).The peculiarities of the c-version are described in the accompanying file donlp2c.psSome short comments about the translation :a) The whole  translation was made by using specifically written macros in MS VBA (Visual Basic for Applications) under Word 97, except :	- a few cases for which the macros did not function properly (embedded comments, array having one of its elements as index , some power operators...)	- formats. As long format text is a problem in C, it was chosen to withdraw all format strings variables, althought imposing duplication of all format lines for file and standard output writings.	- string manipulation.	- functions declarations and references	- ON ( ) GOTO / switch	- DO 100 ... (examples)	- file opening and closing	- STOP / exit	- DATA / PARAMETER   /   initialisation	- returns from FUNCTION subroutines	- min/max of more than two quantities	- modified scalar arguments of subroutines. It was chosen  to add solely  the * operator before the name, without adding a 'p', althought the variable became a pointer then.	- COMMON / includes and global variables. It was chosen  to minimize the number of include (header) files. o8comm.h can replace o8bloc.h in  the examples as well. The others tied to the examples are includeddirectly there. As o8fuco.h is a part of o8comm.h, it was chosen to extract and include it. Also o8xdat.h and o8rdat.h were included in o8comm.h . o8gene.h contains the global variables of the donlp2 file. It was included in the commons tied to the o8qpdu  and following routines.	- two-dimensional arrays as arguments. This was the most annoying problem. As C stores them line after line, it needs the column dimension, which can have different values in donlp2. Moreover, it considers a two-dimentional array as an array of one-dimensional arrays but in fact it is not (no pointers for lines). So nothing simple is possible (C is certainly not a perfect language). Since the column dimension was multiple only for two very small routines (o8sc3 and o8mdru) , it was chosen the  most clear and straightforward method : fixing the column dimension at the suitable value for each routine and duplicating the two foresaid small routines ("twins" are written just after with an underscore added to the name).  consequently the physical dimensions from the arguments lists are withdrawn. The only elegant solution is to declare two-dimensional arrays as arrays of pointers to one-dimensional arrays but this implies different declarations and in-code memory allocation. A medium one is to use void pointers, as done for fgeo and dfgeo subroutines in "dembo..." and "hs10." examples, but this destroys the normal writing, complicated by the need to add 1 to the column highest index as indexing begins at 0 in C.	- some aspects of presentation!!!!!!!!!! importantb) All the user functions are collected now in userfu.c, which is a merger between "<example>.c", "donlp2dummyfu.c", "solchk.c" and "eval_extern.c". The includes are put in each, so it is easy to split the file if necessary (however, o8para.h must be added on top). All the examples follow this model.c) some minor corrections were included : a return seems to be missing for num=15 in o8msg. Format 15200 in o8info is not used. A few labels are not identical for standard IO and .pro writings. In matdr2 subroutine of testgrad.c, format I4 for J is not compatible with the -3 used for spacl, spacr, leading to a one-character displacement to the right. It was put %3i.d) This C version was run first on a PC Intel PII 300 MHz, 64 Mo RAM, UDMA HD with the National Instruments LabWindows/CVI Softawe, including an ANSI C compiler. A second test was done by P. Spellucci on an HP9000/715/100 with 96MB memory under HP UX 9.05 using gcc withperfect results. Further tests were done under Debian Linux/gcc  on a PC with AMD K6 processor.e) This version is of Jul 18, 2002.Some minor bugs have been removed. changes have no influence on performanceof the code. 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -