end
方程f
f='x^3-x-1';
计算结果
bisection(f,1,2,20,10^(-3))
[nxaxbxcfc]
1.00001.00002.00001.50000.8750
2.00001.00001.50001.2500-0.2969
3.00001.25001.50001.37500.2246
4.00001.25001.37501.3125-0.0515
5.00001.31251.37501.34380.0826
6.00001.31251.34381.32810.0146
7.00001.31251.32811.3203-0.0187
8.00001.32039.00001.32421.32811.3242-0.0021
1.32811.32620.0062
10.00001.32421.32621.32520.0020
可以看出近似根为1.3252
.2.因为f(x)严格单调,固在[0,1]有唯一实根
二分代码同一
f=e^x+10*x-2
二分7次结果为0.0898
第一章
题目
代码
functiony=lagrange(x0,y0,x)
ii=1:
length(x0);y=zeros(size(x));
fori=ii
ij=find(ii~=i);y1=1;
forj=1:
length(ij),y1=y1.*(x-x0(ij(j)));end
y=y+y1*y0(i)/prod(x0(i)-x0(ij));
end
取i=0,1,2
结果为
对第2小问将xy互换
取i=1,2,3
F(x)=a3x^3+a2x^2+a1x+a0+c(x+1)x(x-1)(x-3)
先求a3a2a1a0
代码
固
a3=-0.0833333333333336
a2=0
a1=.0833********
a0=1
在求c
所以c=1.83333333333333/-8=-0.229166666666666
第三章
题目
1.分别用显式和隐式的二阶亚当姆斯方法求解初值问题y’=1-y,y(0)=0,令y(0.2)=0.181,取h=0.2,计算y(1.0).
显式代码
functionA=Adams2PC(f,a,b,N,y0,y1)
h=(b-a)/N;
x=zeros(1,N+1);
y=zeros(1,N+1);
x=a:
h:
b;
y
(1)=y0;
y
(2)=y1;
%½øÐÐÔ¤´¦Àí£¬½«ÏàÓ¦µÄµ¼ÊýÖµ´æÈëdy1ºÍdy2
dy1=feval(f,x
(1),y
(1));
dy2=feval(f,x
(2),y
(2));
fori=2:
N
y(i+1)=y(i)+h*(3*dy2-dy1)/2;
dy1=dy2;
dy2=feval(f,x(i+1),y(i+1));
end
A=[x',y'];
函数F5
functionz=f5(x,y)
%UNTITLED4Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
z=1-y;
end
结果
可以看出结果为0.6265
隐式代码
functionA=Adams2PC(f,a,b,N,y0,y1)
h=(b-a)/N;
x=zeros(1,N+1);
y=zeros(1,N+1);
x=a:
h:
b;
y
(1)=y0;
y
(2)=y1;
%½øÐÐÔ¤´¦Àí£¬½«ÏàÓ¦µÄµ¼ÊýÖµ´æÈëdy1ºÍdy2
dy1=feval(f,x
(1),y
(1));
dy2=feval(f,x
(2),y
(2));
fori=2:
N
y(i+1)=y(i)+h*(3*dy2-dy1)/2;
%ÏÔʽ
P=feval(f,x(i+1),y(i+1));
y(i+1)=y(i)+h*(P+dy2)/2;
%Òþʽ
dy1=dy2;
dy2=feval(f,x(i+1),y(i+1));
end
A=[x',y'];
结果为
第四章
题目
用牛顿法求下列方程的根,要求计算结果又4位有效数字
1.x³-3x-1=0,x0=2
2.x²-3x-exp(x)+2=0,x0=1
牛顿法代码
functionrtn=newton1(fx,dfx,x0,tol,N)
%newton1Å£¶Ù·¨
%fxº¯Êý.
%dfx΢·Ö
%x0¸ø¶¨µÄ³õʼֵ.
%tol¾«È·¶È
%Nµü´ú´ÎÊý
x=x0;f0=eval(fx);df0=eval(dfx);
n=0;
disp('[nxnxn+1fn+1]');
whilen<=N
x1=x0-f0/df0;
x=x1;f1=eval(fx);
X=[n,x0,x1,f1];
disp(X);
ifabs(x0-x1)fprintf('Theprocedurewassuccessful.')
return
else
n=n+1;
x0=x1;f0=f1;
end
end
ifn==N+1
fprintf('themethodfailedafterNiterations.'),
end
结果
1.
固第一题为1.8794
2
固结果为0.2575