数学建模社区-数学中国

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

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

#include<iostream.h>1 I# J! B0 O# w9 S* Z #include<math.h> 3 R4 L6 c7 M( F7 @; Ndouble fx(int n,double p[],double x)& x3 O' H$ u: \# I( M { 1 k4 `) G( V; [+ B7 @# D2 V8 m double z=0,y=1; 1 t* m( Z; ^* |- ^0 J int i=0,j=0; ! C" a- w Q' z9 r( I- i9 ^ for(;i<n+1;i++)' R$ L+ h: e4 E' {5 S% ~" N! d { 5 k# U, S5 ~2 F) d# G! d% m' I6 k for(;j<i;j++) 2 d' o( Y" E7 f( v7 y- v y*=x;" S# b1 d# |' k% W4 v8 w z+=*(p+i)*y; * ~* L7 ]! P% ?! Y5 o } 7 ~ e$ w: }0 r) v% _: C return z; + h7 L* K k4 p! h2 v/ Z& \}

: D+ o7 u8 p2 m. `) v" h/ H

int fi(int k) 3 O9 x. j6 H7 R$ n, G6 [ {1 W8 r{! P" y# L# V) q+ |" ?) T8 i6 B if(k==0) , Z' e% x9 U t6 q9 F a return 1; & j. I0 G6 J$ o2 w \+ }2 G* D8 U. D else ' T: \- C. T- A) l9 P" v( t { 6 t6 J. f& Q. b. d if(k==1) 0 m, o3 K2 v9 r6 J4 B2 A return 1; , \4 ?: P) _; e c else - K+ T3 s7 e( ]. g# n { : `, _5 A$ x# Q3 Z+ ^; j( V int i=0,i1=1,i2=1,w=0; 3 }0 ?( d; E# R3 H for(;i<k-1;i++)% n, k% r+ a5 w: t9 O {* j1 Z) ^, x. N8 ~- k' F/ ]% H w=i1+i2;7 V# h" B3 P& H1 I5 \- J i1=i2; ^7 Z4 {5 N, Y9 m; }7 S i2=w; 4 m2 z* q, p/ s: D/ K" ]0 t }+ w- D4 P# Z- b& G+ T: l return w;, T) Y G7 ~1 ]$ j- D" w c }( s# b0 J/ ^, T } ( \ @. X+ Z2 a) x( F}

" Z7 b; K3 E* p0 _- |

int r(double w,double a,double b)4 l" X& s- M, `1 ` {0 F1 a: j W( t: H, r' ^( q int i=0; 0 \/ G1 x- q1 ?; g3 {& U! K. f6 Y for(;fi(i)<=(b-a)/w;i++)' u( q$ t# @' r! U0 \7 w {} ( U) V" r1 R/ k return i;9 d5 e/ R) T: W s8 F } + B, f4 N9 S3 Z& ]0 O& Z8 P) Cvoid main()0 P, P' E! f6 N" f {; U {# n( d; W/ T; g; k% V8 O cout<<"输入函数的最高次幂";7 K! j- l( O$ G int n;4 C8 |) r& Y. N. e/ e" K' Z9 y i cin>>n;- Z' A9 f" @/ n double *p=new double[n+1]; ! i9 V( Y- N$ r: R1 [, ^ R double a,b,g=0,j=0,c=0; 0 y! Z) E5 L* o) D7 L cout<<"依升降幂输入x项的系数"<<endl; 9 a, X+ A% o' a2 T+ ^, j for(int i=0;i<n+1;i++), d1 Z3 ~- e1 M" P* o! A- a cin>>*(p+i); 0 o9 C0 A7 h1 z1 Q5 L cout<<"输入误差值"<<endl; 7 _* U9 t; Y4 ~ double w; 6 R7 V# X0 ^+ k" }) | cin>>w;7 T1 U, W9 W! {0 i' | cout<<"输入初始区间"<<endl; . t% c& k; A: Z3 _2 b2 V7 T cin>>a>>b; ( e! x1 N: B: D! ~9 o | cout<<"输入辨别常数"<<endl;! u# h2 m# Z: m& |( H cin>>c; ; o( R$ c- f3 C) a3 T n=r(w,a,b);! R9 A: N) i/ c; I: q# U+ q i=0;8 e0 c4 m+ [7 l cout<<fi(n-i-2)<<endl; 3 C; ~1 U/ g2 Y2 m cout<<a<<" "<<b;3 D9 x8 {" a7 k7 r g=a+fi(n-2-i)*(b-a)/fi(n-i); / s6 M. t6 b, P( ]. _& X4 k j=a+fi(n-1-i)*(b-a)/fi(n-i);5 i5 ^5 }% t9 ~8 B6 ] cout<<g<<" "<<j;5 F! M; S, G5 {8 j7 [1 r for(i=1;i<n-1;i++)% @# [9 s$ m4 e5 s% W { 2 g/ l+ ?+ B1 Z: h H$ d+ r0 B7 | / J+ u% f" ]& n( H7 H ' `: f3 D/ n; t: w, g if(fx(n,p,g)>fx(n,p,j))( H* P% J4 Z( |, M( y, m- Z# [ {6 |* Z0 r# k# K E0 f a=g; ! i$ R+ G( T* q/ n3 s g=j;# u- e4 N+ j E$ U6 d; a- R6 e j=a+fi(n-1-i)*(b-a)/fi(n-i);# N0 a6 c& r: ^ t( t8 U } ( c. g6 U$ b/ e& y) w0 H. U else 2 R4 Z) W' a9 a4 a9 T { & ~; J9 Q. X& j. M- F2 E b=j;, U; ^4 @6 ~' h4 p! [6 e/ q j=g;* ~7 ^: M1 D# e" F2 S0 M* g& B7 P2 t: V: k, @ g=a+fi(n-2-i)*(b-a)/fi(n-i);( p3 ?! v! B8 k; j2 p: p9 Y( L; u }1 B/ ~, {5 O& f y) z6 c' n5 L7 Y% K : _" `3 V9 ^- h# I' S }- @* [; A8 i O8 a/ V+ _- ~ j=g+c; 0 ~* X# i e: R* H+ s1 {2 ?0 O if(fx(n,p,g)>fx(n,p,j))$ Y/ c" S7 r: Y9 a: i a=g;$ I; \$ a. I- q" f. f+ E" G else b=g;5 j3 @3 D8 Z3 A% H! ^+ p cout<<"函数值在 ("<<g<<","<<j<<")之间;";8 x# a- d& \& q. c, k5 w4 J6 j/ `4 i # W$ g' i/ e, J# M. F}9 |" Y# n% g& P% V! s* E


作者: 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
沙发,板凳都没偶的份了。
3 ]6 n" d! A: e( k
5 v$ Y# q: Q! h! U; H9 ?; l: c: Z( _% w2 I3 i' `
+ b+ Y/ z$ F) M, H0 ~

' K" f  F, I3 |% T) Q
2 t- s0 }6 H/ h7 `, U! Z- r3 q! ?" [+ n' \5 a% K

8 P8 t% a4 F& S; s
& K" [& `+ u+ t9 l$ D& A: X5 K2 p% c+ i3 N$ L. F
7 A2 N* B3 S7 @3 @5 C
- C7 @: d# `( F. ?: e# I
5 I9 b$ x7 D7 O, b4 j: P& U5 q1 ?
0 \! }; W! i; z, {! r
淘宝专享地址:zhfqw.taobao.com/
& D% `3 b- I* ^, V& P
8 V, v2 O2 R  s" @如何将宝贝卖向全世界           索马里论坛**598专卖5 O+ X9 M1 U+ `1 C7 `( B

% J3 k$ ^1 M/ S5 _2 i9 d* B, A
如何将宝贝卖向全世界           索马里论坛**598专卖
作者: lsyzzhl    时间: 2011-11-28 20:32

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

作者: 无语的昭昭    时间: 2015-2-4 10:17
c啊,,,,历害,,我一般用lingo的说
$ ], @0 p. y+ X9 s% n




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