4.2题。
a)f=sym('x^3-2*x-5')
y=solve(f) ;
double(y)
b)程序:p=[1 0 -2 -5];
roots(p)
运行结果:ans =
-1.0473 + 1.1359i
-1.0473 - 1.1359i
c)函数:function y=f(x)
y=x^3-2*x-5
end在命令窗口下输入:
xi=fzerotx(@f,[2,3])
运行结果:y =
y =y =y =
y =-2.5214e-004
y =-1.5713e-007
y =3.5527e-015
y =-5.3291e-015xi =
所以实根为:xi =2.0946
d)f(x)=x^3-2*x-5
f’(x)=3*x^2-2
初值x0为一个复数。
xn+1=xn-f(xn)/f’(xn)
所以:xn+1=xn-(x^3-2*x-5)/(3*x^2-2)
编写两个程序:
function x=f0(xprev)
x=xprev^3-2*xprev-5;
endfunction x=f1(xprev)
x=3*xprev^2-2;
end在命令窗口下输入:
xprev=-1.0473 + i
k=0;while k<=100;
x=xprev-f0(xprev)/f1(xprev);
if abs(x - xprev) >eps*abs(x);
xprev=x;
elsebreak
end k=k+1;
end运行结果:
在workspace上得出xprev=-1.04727574077116 + 1.13593988908893i
k=4d)不可以。
4.5题。a)程序:
p=[816 -3835 6000 -3125]
roots(p)
运行结果:ans =
b)函数:
function y=p(x)
y=816*x^3-3835*x^2+6000*x-3125;
end在命令窗口下输入。
fplot(@p,[1.43,1.71])
gridon
holdon
text(1.6667,0,'(1.6667,0)')
text(1.5625,0,'(1.5625,0)')
text(1.4706,0,'(1.4706,0)')
c)牛顿法。
函数:function y=p(x)
y=816*x^3-3835*x^2+6000*x-3125;
endfunction y=px(x)
y=2448*x^2-7670*x+6000;
end在命令窗口输入。
x=1.5;
k=0;while k<=100;
y=x-p(x)/px(x);
if abs(y - x) >eps*abs(y);
x=y;elsebreak
endk=k+1;
end在workspace上得出y=1.47058823529416,k=10
d)割线法。
x0=1,x1=2
p(x)=816*x^3-3835*x^2+6000*x-3125
sn=(p(xn)-p(xn-1))/xn-xn-1)
所以xn+1=xn-f(xn)/sn
程序:p0=1;
p1=2;n0=10;
tol=0.0001;
p=816*p0^3-3835*p0^2+6000*p0-3125;
px=816*p1^3-3835*p1^2+6000*p1-3125;
fori=2:n0
p=p1-px*(p1-p0)/(px-p);
if abs(p-p1)disp(p)
disp(i)
break;
endp0=p1;
p=px;pp=p1;
p1=p;px=816.*p.^3-3835.*p.^2+6000.*p-3125;
end运行结果:
e)二分法。
程序:a=1;
b=2;x=a:b;
f = x)816*x^3-3835*x^2+6000*x-3125
c=(a+b)./2;
while abs(b-a)>eps
if f(c)*f(b)<0
a=c;else
b=c; end
c=(a+b)./2;
x=c;end
fprintf(' x = 5f, f(x) =5f ', x, f(x))
运行结果:x = 1.47059, f(x) =0.00000
f)函数:function y=p(x)
y=816*x^3-3835*x^2+6000*x-3125;
end在命令窗口输入:
x=fzerotx(@p,[1,2])
运行结果:x =
4.8题。function y=f(x)
a=10;y=sign(x-a)*sqrt(abs(x-a));
function [a]=ndgxf(a,b)
k=0;while abs(b-a) >eps*abs(b)
c = a;
a = b;
b = b + b - c)/(f(c)/f(b)-1);
k = k + 1;
end运行结果:ans =
4.15题。
a)e= m- e*sin(e)因为sin(e)在[-1,1]的范围内。
而m=24.851090
e=0.1所以e在[24.751090,24.951090]范围内。
程序:f=inline('e-e*sin(e)-m','e','m','e')
e=fzerotx(f,[24.751090,24.951090],24.851090,0.1)
运行结果:f =
inline function:
f(e,m,e) =e-e*sin(e)-me =
b)e = 0.1
besselj(1,e)=0.0499
besselj(2,2*e)= 0.0050
besselj(3,3*e)=5.5934e-004
第四项就已经很小了,对结果影响较小。
程序:m=24.851090;e=0.1;
e=2*(besselj(1,e)*sin(m)+0.5*besselj(2,2*e)*sin(2*m)+(1/3)*besselj(3,3*e)*sin(3*m))+m
运行结果:e =
结果相比于用fzerotx得到的值相比是一样的。
二分法程序:
function y=f(x)
y=;%写入要求的函数。
endfunction y=erfen(a,b)
c=(a+b)./2;
while abs(b-a)>eps
if f(c)*f(b)<0
a=c;else
b=c; end
c=(a+b)./2;
x=c;end
end牛顿切线法。
function y=f(x)
y=;%写入要求的函数。
endfunction y=df(x)
y=;%写入要求的函数的导数。
endxprev=%写入要求的初值。
k=0;while k<=100;
x=xprev-f0(xprev)/f1(xprev);
if abs(x - xprev) >eps*abs(x);
xprev=x;
elsebreak
end k=k+1;
end牛顿割线法。
functiony=f(x)
y=;%写入要求的函数。
function [a]=newton(a,b)
k=0;while abs(b-a) >eps*abs(b)
c = a;
a = b;
b = b + b - c)/(f(c)/f(b)-1);
k = k + 1;end
数学实验作业
学院 理学院。班级 统计11 1 姓名 吴。学号 201111051026 实验1一 问题的提出。已知方程组,其中,定义为。通过迭代法求解方程组。1 选取不同的初始向量,和不同的方程组右端向量,给定迭代误差要求,用雅克比和高斯赛德尔迭代法计算,观察得到的迭代向量序列是否收敛?2 取定右端向量和初始向...
数学实验作业
练习5.3 1.设x u 1,11 求该均匀分布的均值与方差。解 输入命令 m,v unifstat 1,11 结果为 m 6,v 8.3333 所以所求均匀分布的均值和方差分别为 6,8.3333。2 设x n 0,16 求该正态分布的均值 标准差和方差。解 输入命令 m,v normstat 0...
数学实验作业
撰写人姓名 陈金伟撰写时间 2010 11 审查人姓名 实验全过程记录。一 实验目的。1 掌握利用matlab处理简单的概率问题 2 掌握利用matlab处理简单的数理统计问题。二 实验内容 1 熟练掌握几种常用的离散型 连续型随机变量的函数命令 2 熟练掌握常用的描述样本数据特征的函数命令 如最值...