EDA365电子论坛网
标题:
本人菜鸟,刚入行学习matlab编程。
[打印本页]
作者:
paprill
时间:
2020-6-1 15:10
标题:
本人菜鸟,刚入行学习matlab编程。
本人菜鸟,刚入行学习matlab编程,参照温正编写的书籍《精通MATLAB科学计算》,在学习欧拉法中的向前欧拉法时,按照书中的例子,一直有问题产生,想请教一下大神们。
9 C: E* J( n1 G* R. x2 V
软件:matlab R2017b,电脑:win10
4 a+ h* _6 W! |1 C* X9 K- C1 f
书中向前欧拉法函数文件如下:
) Z4 H) h8 R* p Z
4 Q5 ^9 p. W2 [
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];
! j T+ |: C1 l$ c
/ o5 g( W. f) I2 n$ q7 U2 N( H3 U- L
8 ]5 h" f" b1 P4 W4 V% ]/ f; D
红色部分就是一直出问题的地方,我上网看了一下,zeros函数里面必须是整数,可是我应该如何修改这个函数文件呢?
+ U* z7 @/ ?9 h: T" m6 T% U4 @3 s
自己也看了其他人的向前欧拉法,比如:
* w, M0 @. \2 o7 E% ?0 h% {
% 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;
u' [5 n' b) C8 i# X
2 R) F5 J/ Q' P( @/ [; ?
关键第一种书上的还有图形出来,但是可能函数的一些编写理由自己不是很清楚,麻烦大神指点一下,非常感谢!
, {5 u. W( f0 A' O, r0 z
作者:
行者~ABC
时间:
2020-6-1 15:58
《精通MATLAB科学计算》这本书确实不错
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2