数学建模社区-数学中国
标题: 非线性规划程序 [打印本页]
作者: 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 Oint 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 Aint 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 绝对是好东西啊
作者: 家家开水 时间: 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 |