山东大学数值计算实验报告3
山东大学 计算机科学与技术 学院
数值计算 课程实验报告
学号: 姓名: 鸿武 班级:计机14.1
实验题目:
1、Computer Problems 3.1(P152)
1.1 画出散点图 (plot 函数)
1.2 用一次多项式拟合。给出拟合函数,确定矛盾方程组的系数矩阵、右端
项。正规方程的方法得到结果,并画图显示该拟合函数
1.3 用二次多项式拟合,画图
1.4 用三次多项式拟合,画图
1.5 前面几个曲线拟合,假设对应的矛盾方程组为Ax ≌b,分别计算A 和
T
A A 的条件数,并比较
2、例题3.2 (图3.1 )的21 个点
1.1 画出散点图
1.2 用一次多项式拟合。给出拟合函数,确定矛盾方程组的系数矩阵、右端
项。正规方程的方法得到结果,并画图显示该拟合函数
1.3 用二次多项式拟合,画图
1.4 用双曲线拟合 (选做)
实验学时:4 实验日期:2016 年11 月12 日
实验目的:最小二乘法数据拟合
硬件环境: PC 机
软件环境: MATLAB、JAVA、C++
实验步骤与内容:
1、
1.1 画出数据散点图如下:
代码如下所示:
t = [0.0 1.0 2.0 3.0 4.0 5.0];
y = [1.0 2.7 5.8 6.6 7.5 9.9];
scatter(t,y)
1.2 一次多项式拟合,拟合函数:
(, ) = 1 + 2
可以写成如下形式:
1 0 1
1 1 2.7
= 1 2 [1] ≅ 5.8 =
1 3 2 6.6
1 4 7.5
[1 5] [9.9]
用正规方程的方法来编写MATLAB 函数如下所示。
test12.m
clc,clear
t = [0.0 1.0 2.0 3.0 4.0 5.0];
b = [1.0 2.7 5.8 6.6 7.5 9.9];
t = t';
b = b';
A = ones(6,2);
A(:,2) = t;
AA = A'*A;
Ab = A'*b;
L = Cholesky(AA);
y = inv(L)*A'*b;
x = inv(L')*y
scatter(t,b)
hold on;
syms m yy
ezplot(yy==x(1)+x(2)*m,[-1,10])
hold on;
B = A'*A;
fprintf('%s\n','1 范数下矩阵AA 的条件数')
Acond(B)
fprintf('%s\n','2 范数下矩阵AA 的条件数')
Acond2(B)
fprintf('%s\n','无穷范数下矩阵AA 的条件数')
Acond3(B)
Cholesky.m
function [ B ] = Cholesky(A )
%UNTITLED2 此处显示有关此函数的摘要
% 楚列斯基分解
B = A;
n = length(A);
for k = 1:n
B(k,k) = sqrt(B(k,k));
for i = k+1:n
B(i,k) = B(i,k)/B(k,k);
end
for j = k+1:n
for i = k+1:n