|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
好久没来论坛发言了,来分享几个我编写对程序,对工科学生也许会有点启发。: M" s. f6 X5 q. a6 L# I
5 U# o6 j6 G( D" Q9 A! h用迭代法求解方程超越方程的解$ J3 [6 L' s x4 I# Q4 V" \8 F
#include "math.h"
8 @8 d$ Y! i% u3 T0 a! d# ?main()
5 f' g! [, J. S* r" }{) C K( ~) c* m" k: `3 D
double x1,x2;- F+ I, Q; L m3 p( I
x1=1;6 r3 G( f+ P' r
x2=2;/ l, m. Y0 `; J( ^! ~; d# q! ]# s$ _
while(x2-x1>0.000001||x1-x2>0.000001)
: L4 A% n1 @; Q9 d& R2 F {: `: o8 E$ u* ]+ ~8 x+ G
x1=x2;
6 g5 N, a6 [4 g% C x2=log10(x1+2);
* j2 ^4 X) V3 z. d X printf("x2=%lf\n",x2); H% P+ d [3 |# [; R
}- h e3 ?+ G8 v7 N' m$ d$ A
printf("result is %lf\n",x2);
+ ^8 N g |$ P% H}
4 D0 f% E$ u& c0 H) H* N
|* k2 j9 L" _6 s8 V' s
3 J4 i3 t& h+ M0 B* ^6 H. n
3 Q1 F7 C: L/ T7 D0 \; P对分法解方程. o: g9 u Z0 q, f9 S
double f(double x)
% m9 B0 d6 x/ l+ T, Z{# v4 H8 W# X) i4 d
double y;
4 {/ }* m o0 ]6 W1 k' D# wy=x*x*x+2*x-5;
6 {$ S6 C% ^: D) Q. J, G# [return y;; {- z8 P3 H- |- l6 K
}' t& B. ?# f; H7 v) ^5 H/ X) |
main()) G2 s' ^0 S; g1 M5 C% b; k' H. i e! r
{" _9 |1 P) P3 c& t
double a=1,b=2;
; S5 m7 v: ?& o8 ndouble c,d,r;+ T% B: q+ X# j# [; S8 t9 w& U
int i;
9 j! r) P4 i- X" ~3 l5 lfor(i=0;i<20;i++)9 \) D9 H$ Y' V4 n1 x
{
X# o- o2 H: X8 i7 P- m& G c=(a+b)/2;
$ C2 a, l: p5 I: M( l% [7 z Y5 O d=f(c);
1 |( P: b0 h, Z9 {% q if(d==0)
) o: l6 H }! T, R) A5 T {& { \1 Q6 d$ r- P6 V
r=c;
) Q; K- \; d. \8 S. z1 w4 A9 l break;
0 F' J( w8 q7 {; X/ Q }
1 B+ N8 x% g* N* i; R' c else9 o! o" v6 C5 P k) G
{6 D4 Z) A c5 s6 l( a3 b/ X6 t
if(d>0)
% v7 z' b$ ^! ~* M Y; T. _1 H b=c;
4 j7 Q4 O' _0 U/ w0 d else
9 I9 V2 }6 j; H$ U+ Z a=c;. J8 Y) C( H: P& _
}5 w/ n3 F/ w& S, R8 u! ]* f
}
`% A0 G- b. \' d% }( R% Y" N" mr=c;$ V2 z" f3 G C8 k
printf("The result of ""x^3+2*x-5=0"" is %lf\n",r);2 @/ N, o. I" A1 u' y
}
v' l& i9 G% P8 j6 ?$ F1 G* }- E8 @- \# @0 C7 i% ~
$ l( j7 m c9 u( B1 Y0 l7 L- `" K一下程序段将以0为起点0.05为步长以2*PI为终点计算各个自变量的正弦值,并将计算结果以点的坐标的形式(x,y)打印到文件中,方便绘图软件处理。使用这种方法,即使不懂C语言的图形操作也可以绘制出高质量的曲线来。8 }2 t/ O. ]& F4 _9 u& c
+ ?2 z5 K0 b1 v$ b$ F#define PI 3.1415926
% {/ W N. s& S#include<stdlib.h>( [; G! y" s7 M' H- S% Q
#include<stdio.h>
" Q- U6 M! o$ p* ~# K/ O- P& v#include<math.h>
6 J2 R; g% w' Q: Mmain()
! I& _' [6 M+ g! b u6 Y m/ ~{+ D" h( x) {! \' \
FILE * pf;
* Z7 W) B0 J, [double x,y;
& u) A0 ]$ {, A) F7 H, ~char xx,yy;; M: } E* R' O' \/ {+ h3 I$ l& x
x=0.0;
3 z: _$ i6 p+ m n6 l' Eif((pf=fopen("d:\\file1.txt","w"))==NULL)
% Q' w, T' t+ j# |! I* H! h {$ z E8 K# i! {
printf("cannot open this file\n");( E+ s4 ]. \; _' d/ Z% o) [; K
exit(1);9 `4 V/ s7 M) i" M$ j
}
. _. d( p. x8 ~while(x<=(PI*2.0))
. i" g1 | x9 \: J; I) B# o{1 F; c, b5 R1 i2 l. ~
y=sin(x);
( X2 O% n! z( j, G! z4 G8 zfprintf(pf,"%lf,%lf\n",x,y);
5 e* q$ `. C4 g8 l* t; Q" n' dx+=0.05;! i# I* A, `& i$ @3 c
}1 l+ [7 X, R# y. d! O
fprintf(pf,"%lf,%lf\n",2*PI,sin(2*PI));
9 l; g! U9 g" ~, V. Z5 tfclose(pf);( y4 e$ t+ }" i* K7 F; F
}
" }- H# m/ Y. ]9 d( n4 z, U |
|