数学建模社区-数学中国

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

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

#include<iostream.h>' m: o* g1 | M6 Y/ q #include<math.h> ; g7 I; r( ~: a+ c$ q/ C' S) f& o9 ndouble fx(int n,double p[],double x) T& \/ _* v8 p) S: Z8 R# r2 k3 I{ ) W: O# z3 n' \: \9 G3 h- G double z=0,y=1;& I( F( u. r5 E! S& ~ int i=0,j=0;* ?1 B' b7 B* {) Y1 x) g) F for(;i<n+1;i++) 0 g% Y- @3 r5 ]( e# w* g W { 7 Y F7 f' x0 l, K for(;j<i;j++)8 t6 s* x& _" K j4 f$ V2 r7 ] y*=x; 9 a: b. I0 Y! {# Q# z) K" E z+=*(p+i)*y;# N( Q- {* v! ^$ @+ W' M- C4 u } ' |: z+ o. w3 X$ o* l return z; 0 q2 d8 s: s7 d5 j1 ^; E/ i}

! n1 F% ]$ N u7 O

int fi(int k)) T/ M/ V/ w* ` {6 v6 O9 J& D8 U" B D* s if(k==0) # u4 \, V' K) b5 e: k+ n- ] return 1;' L3 J/ m8 b+ X% Q' Q else 3 P6 n# S! Z: j% ^ {# p) h1 G+ a6 Z8 X+ c1 `4 y if(k==1) ; c; d* r1 P4 Z ?' h% _5 S5 ^ return 1; 9 S, w/ ?" |% C9 M$ Q else . H) w. [# b* e1 H& } {( Z7 f& \4 k( e0 B1 ] int i=0,i1=1,i2=1,w=0; 8 j% t3 _ {' _* C( y3 q for(;i<k-1;i++)9 A$ @! s3 X2 _! d {! g4 }1 n3 Z: ~ w=i1+i2;4 Q" M/ w" F- x i1=i2; 8 U7 s) p/ g- V' X8 a Q) y; [ S i2=w; & }2 g8 u% Z8 ~ } * J8 z1 R% W- o0 c# y/ M return w;* L& O( D+ I I4 E$ ~ } / d0 X9 X: [4 @4 a- G" k1 e4 X- l}- C5 J# n& b& y4 a- q }

( H5 s9 s- A2 S1 ^3 c) V9 A

int r(double w,double a,double b) m, A2 j) `% U# `, Z{) V' n% R+ Y4 B' {6 M# C; w* O. ` int i=0; & H8 G# Z% U3 C$ l, l for(;fi(i)<=(b-a)/w;i++)- J' L5 q- ^+ t: |- p {}8 V: q7 H- o B return i; ( C9 X z7 `9 {0 B u}3 m' @9 R* ]1 D8 ` void main()$ ~: `4 ?, d0 l* F/ n: _ { # R1 J. p5 u# D cout<<"输入函数的最高次幂"; # g0 i: ~; Q+ T int n; ; \( u7 {$ Z9 b( o, E cin>>n;2 V* i+ r8 L' G: E' m% a d double *p=new double[n+1]; 2 Z, \! M# K" o! @5 B/ T L double a,b,g=0,j=0,c=0; 1 c; |3 X4 \5 u! D! h. j) N cout<<"依升降幂输入x项的系数"<<endl;4 o) ^# }8 T) B6 \0 @6 B. I for(int i=0;i<n+1;i++) + ]. s2 E5 D8 p8 t/ m" A cin>>*(p+i); 4 g6 O5 k2 W/ v' x1 m cout<<"输入误差值"<<endl; + N6 i9 V7 i& G: y( v double w;) Y: R ~' `- ^. q' a cin>>w; + w7 p& c; X# `+ M cout<<"输入初始区间"<<endl; ' R. f; ^1 E" v- e8 o cin>>a>>b;+ x! ?. d5 ?5 T2 t% h4 a$ W cout<<"输入辨别常数"<<endl; 4 W6 u7 d5 |2 j% t cin>>c; . E$ b! Z9 E% P+ ^" X n=r(w,a,b);5 x3 P# ~6 K. t1 o- E0 k& J i=0;8 {9 c8 C2 \: s* c4 l" o cout<<fi(n-i-2)<<endl;# k8 s& v/ i$ v( T7 x0 g cout<<a<<" "<<b; a6 |- b8 W7 r7 `0 Q g=a+fi(n-2-i)*(b-a)/fi(n-i); # R) p) b- j5 S q j=a+fi(n-1-i)*(b-a)/fi(n-i); + l6 g$ ~2 T+ w5 }. Y cout<<g<<" "<<j; 6 I2 q/ L8 ~% j) T+ a! j for(i=1;i<n-1;i++) 0 H/ Z: O; ~! I* o8 R9 c { 9 W) r( ~; n4 s' A4 b 3 g/ e q* e8 _1 q 0 K% @5 F" C h if(fx(n,p,g)>fx(n,p,j))+ t+ v% r8 M1 x3 ` {. P7 b( }/ r. v a=g;! v1 n" y e; R* t9 {0 M6 R g=j; : ?: P1 z$ k1 R# M' X! \8 T7 x j=a+fi(n-1-i)*(b-a)/fi(n-i);& U0 j3 d$ m$ G2 O1 V }' w$ K! J. {( c2 W, A" S' ] else 9 [0 a; v9 D1 A. A- L+ [ {: @' [4 b, @; j8 r& r& d% E# r b=j; 7 r% T: m8 i4 V7 n j=g;1 x+ Q8 j* ?" y% f g=a+fi(n-2-i)*(b-a)/fi(n-i);. I" l$ H6 g3 u! \ } ( T8 a* x* c$ U" y H7 X# O1 x 9 W* C0 O- P3 f" P/ i, L }" I0 p" [1 Y! B8 A j=g+c; 4 m/ Y$ m. R8 j% S8 w if(fx(n,p,g)>fx(n,p,j))! z$ K) O: \; I3 h a=g; ( f5 c6 h6 n6 i- A" D else b=g;8 K$ V# [8 k" X cout<<"函数值在 ("<<g<<","<<j<<")之间;"; ! g5 O$ t2 I; D, z0 |5 F 1 }! z; v, J% p- L8 Y } ; r; w0 T! l; R8 b$ F9 Z0 h$ ~


作者: 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
沙发,板凳都没偶的份了。/ D2 m+ C* [- z

9 B( T8 k6 S9 A
1 |0 Y9 ]5 Z2 i, e7 S
4 ]8 E7 F! E3 d) ]& U( ^4 f5 d
- ~3 t9 ]5 y: b8 d/ K" ^$ c4 K/ M: v% y6 X# o* k* C2 c
( W" L  A: t& c- |
5 [8 A* P7 l( t9 N2 r, _0 V  x
5 l. U4 H; c# z4 d8 d& l& O

8 a4 [, n8 }" ]3 M- a9 j
- M! K% V% P1 o' {7 h  M8 n# K9 Y, v7 _; Q) N
& Y" J' M; y* Z; g( t& U* N4 @4 n

: d4 z' r5 i+ F8 R& Q 淘宝专享地址:zhfqw.taobao.com/
+ i/ d" S3 q; B
% _( H1 `3 l- k! |如何将宝贝卖向全世界           索马里论坛**598专卖
+ T6 Z( Q  k' R
( ^0 \6 P& i( X
如何将宝贝卖向全世界           索马里论坛**598专卖
作者: lsyzzhl    时间: 2011-11-28 20:32

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

作者: 无语的昭昭    时间: 2015-2-4 10:17
c啊,,,,历害,,我一般用lingo的说
" x) \2 a" t4 K" i, e




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