计算方法上机大作业.docx
- 文档编号:27938516
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:9
- 大小:18.76KB
计算方法上机大作业.docx
《计算方法上机大作业.docx》由会员分享,可在线阅读,更多相关《计算方法上机大作业.docx(9页珍藏版)》请在冰豆网上搜索。
计算方法上机大作业
绪论
1.用二分法求方程x3-x-1=0在[1,2]内的近似根,要求误差不超10-3.
程序:
clc;clear
a=1;b=2;
fa=a*a*a-a-1;
fb=b*b*b-b-1;
c=(a+b)/2;
fc=c*c*c-c-1;
iffa*fb>0,break,end
whileabs(fc)>10^(-3)
c=(a+b)/2;
fc=c*c*c-c-1;
iffb*fc>0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
end
formatlong
fx=fc,x=c
运算结果:
fx=-4.659488331526518e-05
x=1.324707031250000
2.证明方程f(x)=ex+10x-2=0内在[0,1]内有唯一实根,用二分法求这一实根,要求误差不超过0.5*10-2.
证明:
由题可知,f’(x)在[0,1]上为正,也就是f(x)单调递增,又因为f(0)<0,f
(1)>0,所以在[0,1]内有唯一实根。
程序:
clc;clear
a=0;b=1;
fa=exp(a)+10*a-2;
fb=exp(b)+10*b-2;
c=(a+b)/2;
fc=exp(c)+10*c-2;
iffa*fb>0,break,end
whileabs(fc)>0.5*10^(-2)
c=(a+b)/2;
fc=exp(c)+10*c-2;
iffb*fc>0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
end
formatlong
fx=fc,x=c
运算结果:
fx=0.003275341789827
.0908********
第一章
11.给出概率积分
的数据表
i
0
1
2
3
xi
0.46
0.47
0.48
0.49
yi
0.4846555
0.4937452
0.5027498
0.5116683
用二次插值计算,试问:
(1)当x=0.472时该积分值等于多少?
程序:
clearall;
x=[0.460.470.480.49];
y=[0.48465550.49374520.50274980.5116683];
xi=0.472;
yi=interp1(x,y,xi,'linear');
yi
运算结果:
yi=0.495546120000000
(2)当x为何值时积分值等于0.5?
程序:
clearall;
x=[0.460.470.480.49];
y=[0.48465550.49374520.50274980.5116683];
yi=0.5;
xi=interp1(y,x,yi,'linear');
xi
运算结果:
xi=0.476946227483731
34.构造适合下列数据表的三次插值样条S(x):
x
-1
0
1
2
y
-1
1
3
5
y’
6
1
程序:
function[]=spline31(X,Y,dY,x0,m)
N=size(X,2);
s0=dY
(1);sN=dY
(2);
interval=0.025;
disp('x0为插值点')
h=zeros(1,N-1);
fori=1:
N-1h(1,i)=X(i+1)-X(i);
end
d(1,1)=6*((Y(1,2)-Y(1,1))/h(1,1)-s0)/h(1,1);
d(N,1)=6*(sN-(Y(1,N)-Y(1,N-1))/h(1,N-1))/h(1,N-1);
fori=2:
N-1
d(i,1)=6*((Y(1,i+1)-Y(1,i))/h(1,i)-(Y(1,i)-Y(1,i-1))/h(1,i-1))/(h(1,i)+h(1,i-1));
end
mu=zeros(1,N-1);md=zeros(1,N-1);
md(1,N-1)=1;mu(1,1)=1;
fori=1:
N-2
u=h(1,i+1)/(h(1,i)+h(1,i+1));mu(1,i+1)=u;
md(1,i)=1-u;
end
p(1,1)=2;q(1,1)=mu(1,1)/2;
fori=2:
N-1
p(1,i)=2-md(1,i-1)*q(1,i-1);q(1,i)=mu(1,i)/p(1,i);
end
p(1,N)=2-md(1,N-1)*q(1,N-1);
y=zeros(1,N);y(1,1)=d
(1)/2;
fori=2:
Ny(1,i)=(d(i)-md(1,i-1)*y(1,i-1))/p(1,i);
end
x=zeros(1,N);x(1,N)=y(1,N);
fori=N-1:
-1:
1x(1,i)=y(1,i)-q(1,i)*x(1,i+1);
end
fprintf('M为三对角方程的解\n');
M=x;
fprintf('\n');
symst;
digits(m);
fori=1:
N-1
pp(i)=M(i)*(X(i+1)-t)^3/(6*h(i))+M(i+1)*(t-X(i))^3/(6*h(i))+(Y(i)-M(i)*h(i)^2/6)*(X(i+1)-t)/h(i);
+(Y(i+1)-M(i+1)*h(i)^2/6)*(x-X(i))/h(i);
pp(i)=simplify(pp(i));coeff=sym2poly(pp(i));
iflength(coeff)~=4
tt=coeff(1:
3);coeff(1:
4)=0;coeff(2:
4)=tt;
end
ifx0>X(i)&&x0 y0=coeff (1)*x0^3+coeff (2)*x0^2+coeff(3)*x0+coeff(4); end val=X(i): interval: X(i+1); fork=1: length(val) fval(k)=coeff (1)*val(k)^3+coeff (2)*val(k)^2; +coeff(3)*val(k)+coeff(4); end ifmod(i,2)==1plot(val,fval,'r+') elseplot(val,fval,'b.') end holdon clearvalfval ans=sym(coeff,'d'); ans=poly2sym(ans,'t'); fprintf('在区间[%f,%f]内\n',X(i),X(i+1)); fprintf('三次样条函数S(%d)=',i); pretty(ans); end X=[-1013]; Y=[-1135]; dY=[61]; x0=1.2;m=5; spline31(X,Y,dY,x0,m) 运行结果: 在区间[-1.000000,0.000000]内 三次样条函数S (1)=3.0t3+2.0t2+0.66667t+0.66667 在区间[0.000000,1.000000]内 三次样条函数S (2)=-1.0t3+2.0t2-2.3333t+1.0 在区间[1.000000,3.000000]内 三次样条函数S(3)=0.25t3-1.75t2+2.5833t+1.9167 第二章 PPT题目: 编写一通用型复化辛甫生公式。 能够对任意长度的等间距离散数据进行积分运算。 程序: functionI_n=simpson1(a,b,n) h=(b-a)/n; fork=0: n; x(k+1)=a+k*h; ifx(k+1)==0 x(k+1)=10^(-10); end end I_1=h/2*(f(x (1))+f(x(n+1))); fori=2: n; F(i)=h*f(x(i)); end I_2=sum(F); I_n=I_1+I_2; 第三章 13.分别用显式和隐式的二阶亚当姆斯方法求解初值问题y'=1-y,y(0)=0,令y(0.2)=0.181,取h=0.2计算y(1.0)。 程序: 显式二阶亚当姆斯方法 functionA=Adams2(h,N,y0,y1) y=zeros(1,N+1); y (1)=y0; y (2)=y1; fori=2: N y(i+1)=y(i)+h/2*(3-3*y(i)-1+y(i-1)); end A=y(N+1); Adams2(0.2,5,0,0.181) 运行结果: ans=0.6265 程序: 隐式二阶亚当姆斯方法 functionA=Adams2(h,N,y0,y1) y=zeros(1,N+1); y (1)=y0; y (2)=y1; fori=1: N y(i+1)=y(i)+h*((1-y(i+1))+(1-y(i)))/2; end A=y(N+1); Adams2(0.2,5,0,0.181) 运行结果: ans=0.8071
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算方法 上机 作业