数学建模社区-数学中国

标题: 非线性规划程序 [打印本页]

作者: dx999    时间: 2004-12-9 20:04
标题: 非线性规划程序

#include<iostream.h>) i1 Z7 ?) ~6 J$ i. ]) [# u #include<math.h> ) h. l( v' Y1 c. u* c! V Y1 Ldouble fx(int n,double p[],double x) 9 b& d: ^$ l6 m$ K/ }* ^{) M7 v! |1 F* }- B double z=0,y=1;& Z' Q+ p9 S ^- C: C- n, [ int i=0,j=0; 1 q/ o! P D) d1 E& L% g for(;i<n+1;i++) % p# D: R& D7 n6 c9 t8 E$ C% F { + e# N! T* e. S for(;j<i;j++)2 h! G b9 k& q0 ^- n y*=x; , G$ K% {/ E5 m8 g; ~ z+=*(p+i)*y;/ Q* |' C; M; l }, a& A7 |/ m. w9 T return z;0 Z- e3 Y3 G5 w; ] }

4 R. _/ s; L2 j4 S. w% c% Q. H

int fi(int k) 6 l+ v8 v, b: }" h{" V7 K& G2 M5 w% v if(k==0) 8 T* G0 J: {8 E7 b/ Y' M: d return 1;2 I2 h/ a- t! ?/ ^( w else - U+ X: U [) t5 h+ P6 g, v& ] { 2 w: [* `; W$ T _, h8 O if(k==1) 0 h# j9 P B0 i return 1; x6 b. b$ s. a0 m) \ else 2 }' A b1 v' h* ?1 {% h4 q5 z {5 P2 d6 C# k2 L, {. p' I int i=0,i1=1,i2=1,w=0;' Q T; M( N O: n9 U g2 K/ u for(;i<k-1;i++) j+ ?$ k+ U+ k9 J" `* u! q" B { # N; n8 ~2 t5 p4 v8 d6 w( m0 J w=i1+i2;! X6 c+ K' n P i1=i2; ( Y0 O7 J6 B* V1 E, v i2=w;2 J( ~8 v" S* l& ~) X7 y* ~& a }2 c% d6 b3 @' i9 l8 s( c, _6 | return w; ) }& e1 U& K' q+ [; Q7 { }; W7 R) T |4 G- n' P P } # o0 I6 \" I# q. k0 S! o: S8 i}

6 j2 \- Q; g7 d: d$ @3 t

int r(double w,double a,double b)+ l2 p9 v! O5 u' O { 9 {# v% p B+ T, N t5 L! d6 Q7 E7 L, Y int i=0; # |4 Y& m+ e( q/ f, K- h* v2 q( O for(;fi(i)<=(b-a)/w;i++) ) Q0 N# I4 c% A8 { {}; E+ M2 k2 r7 N9 g' p return i; ( L" X( c! d$ E% r+ x7 ~: R} * N, i- a5 V* o& ~void main() : _6 d. v S; V5 s' V7 V{ 8 r% H, _. S/ i! g cout<<"输入函数的最高次幂"; ! _" W8 R$ @. |3 E& m int n;# W- `& Z; {, x! i: P' z cin>>n;$ `; y. a5 C2 V0 s! K5 |* f double *p=new double[n+1]; c7 E/ I. D A; D( x double a,b,g=0,j=0,c=0; ( d$ p3 v+ h0 R% t X6 z+ V U cout<<"依升降幂输入x项的系数"<<endl; 2 N$ T% j2 K" F4 z8 J for(int i=0;i<n+1;i++)8 V* y& s! t: n, g% Q cin>>*(p+i);0 G# }* e# ^( D7 A8 Z5 e8 x cout<<"输入误差值"<<endl; 7 M7 z! Y* J2 ?+ ` double w;- a- b% c \9 | cin>>w;3 H/ S) v+ X( \3 a _ cout<<"输入初始区间"<<endl;- V s+ \8 D ]- A' q7 ] cin>>a>>b; 8 M2 \0 }$ L E' f$ S2 f) | cout<<"输入辨别常数"<<endl; 3 e. C# s# ^& ]* O' \5 u$ J' m cin>>c; " L4 E* @, D1 L8 A n=r(w,a,b);3 U, n) R! u1 w8 d i=0; $ V1 o& f, l O% m; W/ M% b cout<<fi(n-i-2)<<endl; $ x" t( x4 M& s- ] cout<<a<<" "<<b; ! b: c' y1 o7 H- O g=a+fi(n-2-i)*(b-a)/fi(n-i); " T" O8 x3 C0 Z8 y' L; @ j=a+fi(n-1-i)*(b-a)/fi(n-i); & g0 F. D% A! x* w k" P cout<<g<<" "<<j; ; }8 `2 v$ ~; I# {5 F( F( _; F- Z for(i=1;i<n-1;i++)5 B7 Z; l( X5 J3 J1 w/ j' C' T9 x9 s {- J' h2 @9 \ z9 f; d 9 C- A$ U; W% A 4 J( C' O; x( b5 j, z& X$ W# h" L if(fx(n,p,g)>fx(n,p,j)) / k) F% ?5 \; M1 d! n6 G {6 u" @) v9 C2 B a=g; 0 W N0 F2 d- M6 ` g=j; " T9 c) s& i* r0 `9 {5 g, y j=a+fi(n-1-i)*(b-a)/fi(n-i);/ H& `% c+ C | }! d+ ^5 m4 Y! s- R7 J& p7 P' K else : d# y. g. h0 A1 k; V: ` {) l, L& c) J- x# }% t( J* R b=j; % |) ?6 {7 U" m% ]+ v1 Z9 N: a# @6 Q j=g; # h' B8 L! q2 |4 t+ V% j+ R g=a+fi(n-2-i)*(b-a)/fi(n-i);9 K" f" e/ H8 c* M+ N+ h4 d }' T$ ^. z9 I7 X4 _8 N# X - _* x5 ^7 o8 E+ A- {% I, ~ }6 S1 B% Z' }+ J/ F4 t2 h j=g+c; 4 w- y* z; k) h+ e+ d0 ~6 X! A if(fx(n,p,g)>fx(n,p,j)) 4 B+ }; F* q: }' x a=g;0 t; W- s3 `! G+ h/ ? h else b=g;' b e* X& o* B6 A" N: Y1 O cout<<"函数值在 ("<<g<<","<<j<<")之间;";+ q; i9 R9 Q& g# `9 h& m& R1 ]5 Z5 S/ \ - v; N0 f1 \6 M& x0 {, k} 3 R$ `% d: F+ J0 e1 D9 n


作者: Allos    时间: 2004-12-9 21:29
这个程序可读性太差
作者: zhanfeng    时间: 2004-12-18 20:59
如果加上注释会容易看一些!
作者: ilikenba    时间: 2004-12-19 16:16
用的是什么算法?
作者: harleych    时间: 2004-12-22 16:24
没什么用
作者: duanzengbin    时间: 2004-12-23 21:27
C语言吗?
作者: leonsun2002    时间: 2004-12-28 15:35
什么算法?
作者: zhyi    时间: 2005-4-17 16:32

有点像牛顿法求解非线性方程组

没有解时就找到某个区间


作者: mengfanqi    时间: 2005-9-6 19:45
可以慢慢研究!!!
作者: garr    时间: 2005-9-6 21:02

不是吧,用C语言求规划?汗。lingo不是能解吗?


作者: garr    时间: 2005-9-6 21:03

不行编个遗传算法,反正工具箱挺好用的


作者: chz0829    时间: 2006-6-3 00:43
都这么高深呀,看不懂哦
作者: jinfly4997    时间: 2006-7-27 13:20

This is a C++ program!


作者: nehcoay    时间: 2006-10-15 05:25
汗,都有matlab还用自己弄么
作者: ROBURITE    时间: 2006-10-17 20:10
再看看
作者: 999mmg    时间: 2006-11-3 13:53
hehe&nbsp;&nbsp; 绝对是好东西啊
作者: 家家开水    时间: 2011-4-16 17:02
头都昏了···
作者: 515genius    时间: 2011-4-22 11:14
慢慢看好了
作者: 水木年华zzu    时间: 2011-4-28 16:21
楼主要是能把格式整理下就更好了
作者: shuxuezaozhuang    时间: 2011-9-20 16:20
有些乱!!
作者: 城榜公_DNO    时间: 2011-10-13 23:49
沙发,板凳都没偶的份了。! }2 q5 c0 c! P3 {5 ^$ L  v% W
. }8 o7 Q0 s* |$ M3 H4 P- Q7 P

- P3 v* `. {7 n8 h7 H
9 G" a; |3 k+ C6 f$ Z, H& b' o8 P; [, i+ y
, r" L7 I1 f. f4 U6 I( Y7 Q7 P
( R. h7 ^2 ]# H8 w

5 Z1 f( d2 w% Y4 I9 v& T, ]$ Z: q) l
+ o- x- M2 l( c& ?' P- t8 H" T3 g, g  C; w8 l0 v
/ t% b: ^% T& w* z" P% z

1 o+ l7 h7 {5 d8 h. P( T  t  E  ~# ~6 v+ f9 a# s+ a2 n

% P6 S+ Y* R# M( j; O$ o/ h 淘宝专享地址:zhfqw.taobao.com/
9 Q% P7 |1 {. h$ [2 n, c ( x9 R; n( _: |& Q# S* Y: p8 W: ^
如何将宝贝卖向全世界           索马里论坛**598专卖
: T# t( n. [  J1 s
. A+ a5 o7 b" d7 n
如何将宝贝卖向全世界           索马里论坛**598专卖
作者: lsyzzhl    时间: 2011-11-28 20:32

作者: weigao1234    时间: 2011-11-29 21:32

作者: 无语的昭昭    时间: 2015-2-4 10:17
c啊,,,,历害,,我一般用lingo的说; b% R0 f* v: _9 T9 b





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5