|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,刚入行学习matlab编程,参照温正编写的书籍《精通MATLAB科学计算》,在学习欧拉法中的向前欧拉法时,按照书中的例子,一直有问题产生,想请教一下大神们。/ b, |9 c, n$ i4 K6 S5 c* R0 y, V
软件:matlab R2017b,电脑:win105 _6 j1 {# v1 Y! N
书中向前欧拉法函数文件如下:
6 N" V$ |- @7 ~ ~& W2 v
7 e6 N& k, p& P# j& b0 N- function P=Eulerli1(x0,y0,b,h)
- %x0初值
- %y0为初值
- %b为x0取值区间的右端点
- %h为步长
- n=(b-x0)/h;
- X=zeros(int(n),1);
- Y=zeros(int(n),1);
- k=1;
- X(k)=x0;
- Y(k)=y0;
- for k=1:n
- X(k+1)=X(k)+h;
- Y(k+1)=Y(k)+h*(X(k)-Y(k));
- k=k+1;
- end
- y=X-1+2*exp(-X);
- plot(X,Y,'mp',X,y,'b-')
- grid
- xlabel('自变量 X'),ylabel('因变量')
- legend('h=0.075 数值解','精确解')
- jwY=y-Y;
- xwY=jwY./y;
- k1=1:n;
- k=[0,k1];
- P=[k',X,Y,y,jwY,xwY];7 I, j8 } l3 f0 g
- @/ M% `' @# e* n, a( X4 R9 P
$ a: y1 ]* b7 e& }% b9 |7 N- }
红色部分就是一直出问题的地方,我上网看了一下,zeros函数里面必须是整数,可是我应该如何修改这个函数文件呢?
5 L4 X' Q; P4 \) A T% j# Q自己也看了其他人的向前欧拉法,比如:% N" G! {7 w+ f) a' b, _0 L" `
- % forward euler method
- function [ x, y ] = euleRF ( f, y0, a, b, n )
- y ( 1 ) = y0 ;
- h = ( b - a ) / n;
- x = a : h : b;
- for i = 1 : n
- y ( i +1 ) = y ( i ) + h * feval ( f, x ( i ), y ( i ) ) ;
- end;# v% ]: o8 |. W9 {% R
0 {0 T+ t" \. B! M( \0 J6 m- O- w7 @关键第一种书上的还有图形出来,但是可能函数的一些编写理由自己不是很清楚,麻烦大神指点一下,非常感谢!
1 ]$ x' y4 `- s4 H8 _ |
|