实验报告
实验课程名称: 数 值 分 析
实验题目名称: 方程求根的数值方法
求解线性方程组的数值方法
插值与数值积分
函数逼近和微分方程求解
姓 名:
学 号:
班 级:
专 业:
学 院: 数学与统计学院
实验报告(一)
一、 实验内容:
求方程
3
3 1 0xx− − =
在
0
2x =
附近的根(根的准确值
*
1.87938524x =
,要
求计算结果准确到四位有效数字。)
二、 实验代码:
1、二分法:
主函数:
clear;
clc;
syms U L; %将区间上下限定为变量
f=@(x)x^3-3*x-1; %求给定的函数,可以直接在本行中修改后面代码为其他
函数
U=3('输入求根区域上限 upper,U=');
L=1('输入求根区域下限 lower,L=');
while U-L>0.0001 %设定一个求根区域精度,然后进行判断
root=(U+L)/2; %当根的区间大于所给精度时,利用二分法重新规划求
根区间
if f(root)==0
break; %r 恰好为所求根,直接跳出循环
end
if f(root)*f(U)<0 %用零点存在定理判断根所在的区域
L=root;
else
U=root;
end
end
root %直接输出所求根的值
2、牛顿法:
M 文件:
function [p] = NEWTON(f,df,p0,tol,max)
%NEWTON 此处显示有关此函数的摘要
% 此处显示详细说明
for k=1:max
p1=p0-feval(f,p0)/feval(df,p0);
err=abs(p1-p0);
if err<tol
break
end
p0=p1;
end
p=p1;
end
主函数:
f=@(x)x^3-3*x-1;
df=@(x)3*x^2-3;
NEWTON(f,df,2,0.0001,100)
3、斜截法:
M 文件:
function [p] = OBLIQUE_TRACING(f,p0,p1,tol,max)
%NEWTON 此处显示有关此函数的摘要
% 此处显示详细说明
for k=2:max
p2=p1-feval(f,p1)*(p1-p0)/(feval(f,p1)-feval(f,p0));
err=abs(p2-p1);
if err<tol
break
end
p0=p1;
p1=p2;
end
p=p2;
end
主函数:
f=@(x)x^3-3*x-1;
OBLIQUE_TRACING(f,1,3,0.0001,100)
三、 实验结果:
(1)二分法:
(2)牛顿法:
(3)斜截法:
实验报告(二)
一、 实验内容:
求解非齐次线性方程组
。
二、 实验代码:
Gauss 消去法:
M 文件:
function x = Gauss(A,b)
a=[A,b];
x=[];
n=length(a)-1;
for k=1:n
for i=k+1:n
c=a(i,k)/a(k,k);
for j=k:n+1
a(i,j)=a(i,j)-c*a(k,j)
end
end
end
x=take(a);
function x = take(a)
n=length(a)-1;
for i=n:-1:1
s=0;
if i==n
x(i)=(a(n,n+1)-s)/a(n,n);
else
for j=n:-1:i
s=s+a(i,j)*x(j);
end
x(i)=(a(i,n+1)-s)/a(i,i);
end
end