数学建模社区-数学中国
标题: 非线性规划程序 [打印本页]
作者: dx999 时间: 2004-12-9 20:04
标题: 非线性规划程序
#include<iostream.h>/ g f- y: V! \# `
#include<math.h>
3 { f# z$ Y' U. u! N: Edouble fx(int n,double p[],double x)
8 s- r* W6 L5 W. V' }5 U. Y{
" r, s& k% v T$ G; o double z=0,y=1;5 }3 c" T' j$ p4 ^. T: p& l" y' {' n
int i=0,j=0;
: p% o: S8 n4 U; Z for(;i<n+1;i++)
( g+ S1 U+ ^( S) a, M { ! @# y# f9 W8 c$ t5 `( `8 b
for(;j<i;j++)( z4 `4 I- e% P+ D0 m$ r( i
y*=x;1 {3 M; `, H; G0 F, r7 f
z+=*(p+i)*y;, A% Y2 Q3 j8 M: D& N
}8 c8 J2 i9 l8 Z! b
return z; i0 _, Q e2 A3 |
}
+ w6 b |6 b7 n4 S8 Y' o
int fi(int k)# ~ {( \& |6 D6 v$ r* l
{ H( Z4 H* M! v" g
if(k==0)
9 Y+ d3 U" W/ f \ d4 O1 Y return 1;4 b& x6 h7 i7 \# P
else ( T% u7 I& n* ~3 U% z; Z: s3 W
{$ @( H# d7 q- D: p) Y$ s
if(k==1)
4 t- t5 y: N% \+ d0 l return 1;
; ?) j# L1 ~6 H+ K# K4 }( u! G else 8 T) r3 {! i# K% B; s9 u: o/ p. i
{
$ w3 \, T8 c2 k' O int i=0,i1=1,i2=1,w=0;
7 p* k6 Y( A* D) v9 _; V" f$ | for(;i<k-1;i++)) n e, h# A; k
{" D4 i `2 {# d! {4 y, }: y
w=i1+i2;' D. U# R3 z5 W
i1=i2;, P/ n; @+ E5 V# ~& W
i2=w;# M* ~- [1 R, t' ]
}2 a4 N; Q1 ^# \4 R2 L# I" [% N
return w;- e+ V- f; x6 _! v
}& y% t4 x; K5 x0 r
}
1 S" W+ r( M# x8 ?}
' M5 s8 [) i5 B4 d8 J' W
int r(double w,double a,double b)/ @( I* ^ l4 Z* d7 C$ p
{# v* _. l5 q* _% g3 ]# H
int i=0;
A$ X/ A% p' i for(;fi(i)<=(b-a)/w;i++)
: ]8 c: ^7 p" Y" K) A( I {}* A1 l: v- }1 S0 o
return i; W4 w9 j5 O- ]! P) V; s! n2 u, `
}
: G; ]$ K8 V kvoid main()$ H* e% l H* U3 @% n1 M& x
{
% F9 f$ o7 J% c; V7 e+ Y2 a cout<<"输入函数的最高次幂";' e' k _4 Y* ^2 S" S4 [6 i3 ^7 b
int n;
6 {( D" }' ^# B& ^% F) M cin>>n;
0 a" ^( i! T2 u- a. T) H double *p=new double[n+1];2 \$ s+ q8 N5 f1 q; D0 r
double a,b,g=0,j=0,c=0;
! Q0 m& F! U3 ]4 e cout<<"依升降幂输入x项的系数"<<endl;
+ F8 T9 ~; J. \. Z- } for(int i=0;i<n+1;i++); {" C6 L3 d$ e) a
cin>>*(p+i);
% W' Q* ^) @2 h8 d M9 c( X. j cout<<"输入误差值"<<endl;
t6 ?& t# X( X/ g: Q double w;
- o3 j$ ]( l7 m d* ?1 r- c A5 a cin>>w;1 X2 k9 N5 Y8 q- P
cout<<"输入初始区间"<<endl;
& z% \0 c8 W) I; F$ E cin>>a>>b;
7 z5 X( H1 S. R3 P cout<<"输入辨别常数"<<endl;8 H( A2 y, ]( M, J- T& Y- w
cin>>c;
, r1 v" e$ O; }: \; J n=r(w,a,b);# g. q2 e$ a! ?! d# A- {
i=0;* j" ^) b5 t) R
cout<<fi(n-i-2)<<endl;
0 K0 _* ]- V0 d, D cout<<a<<" "<<b; n9 k1 g% }. }" ^ G6 N: A6 z* J
g=a+fi(n-2-i)*(b-a)/fi(n-i);0 c+ G/ A) E3 w- V8 N4 T$ R
j=a+fi(n-1-i)*(b-a)/fi(n-i);
! T7 B8 Z2 l/ _) e& p1 d% Q) y6 N cout<<g<<" "<<j;
3 j- @$ \$ J& x5 k, i7 _$ ~ for(i=1;i<n-1;i++)% ^! L- n/ t! p4 a
{/ }9 ?/ G! _: |" s) Z: N
( G& f( U" \; z. L2 w 8 i" @" q2 R* Z! Q: V4 E$ v- r
if(fx(n,p,g)>fx(n,p,j))( ~3 s4 O+ l. r) _
{
3 z; ?% w+ {1 l+ b$ X* M P5 f a=g;! c% ^, o* I! k# S4 b" W& e# j4 w
g=j;
8 u2 u4 B, Y0 A0 \6 W& W; b6 D j=a+fi(n-1-i)*(b-a)/fi(n-i);/ X' G3 e7 ]: W9 Y% i0 y$ c8 g
}
" c, E. M! a) p: P% K; r8 D( Q else 6 S. K: _/ K' p
{
) Z2 I' g9 c# l* e b=j;
1 ^/ z ], P B& y( B1 T3 c: D j=g;6 U4 b$ [5 s8 p) S
g=a+fi(n-2-i)*(b-a)/fi(n-i);. u b- a3 @# M' s( S9 _
}, S. h; u) R: P2 R8 H5 [
" V1 w& B9 [0 G& b }" o( ~4 T% y8 t3 }
j=g+c;
3 ~! U) h3 J7 I3 u n if(fx(n,p,g)>fx(n,p,j))" q% v6 ~7 G9 z2 {$ A
a=g;2 ~" b. A4 o+ m9 ]+ b, J
else b=g;
3 {( T; B9 l/ N cout<<"函数值在 ("<<g<<","<<j<<")之间;";
* k; A4 ~- H0 b9 d. k8 }
4 E, j2 [9 X0 M& m/ t# g. N$ M}3 R* q6 K2 B* g( O
作者: 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
沙发,板凳都没偶的份了。
2 E+ }9 j2 |1 J9 Z1 M1 E+ h% J- R$ u/ U; p# [* Z
6 y1 |1 I! t4 H! l& S
$ X- L1 p% A, O; G3 \
/ @6 }" }4 x1 `$ l) K, K8 b7 U/ N
. O7 R, ~3 E4 v) Q: U9 r' f, Y" z: U* H
; d* l9 X, w/ f% k
! G4 C* S( [. c- D7 T3 P' R' u7 q" _0 v' X) }
% K2 n0 K' e9 v( c% {
0 B" ^0 V% _9 a/ \$ u
" R' l! i r/ P" u
+ T, Z0 i; i' q9 l 淘宝专享地址:zhfqw.taobao.com/ {) C" c3 }' n) u1 Z- Q
! I! L9 Q% G8 f# D如何将宝贝卖向全世界 索马里论坛**598专卖2 S' W6 x& P" p5 T( _( r8 O
8 _. P' s* I( A如何将宝贝卖向全世界 索马里论坛**598专卖
作者: lsyzzhl 时间: 2011-11-28 20:32


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





作者: 无语的昭昭 时间: 2015-2-4 10:17
c啊,,,,历害,,我一般用lingo的说5 i- D ]# x, G/ Q; r
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |