实验6 Matlab数值计算

实验目的:
1、掌握数据统计与分析的方法;
2、掌握数据插值和曲线拟合的方法及其应用;
3、
4、掌握多项式的常用运算。
实验内容:
1.利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作:
A=randn(10,5);
(1)求A的最大元素和最小元素;

max_=max(max(A))
min_=min(min(A))

(2)求A的每行元素的和以及全部元素的和;

rsum=sum(A,2)
allsum=sum(sum(A))

(3)分别对A的每列元素按升序、每行元素按降序排列。

colums=sort(A)
rows=fliplr(sort(A,2))

2.用3次多项式方法插值计算1-100之间整数的平方根。
N 1 4 9 16 25 36 49 64 81 100
平方根 1 2 3 4 5 6 7 8 9 10

N = [1:10].^2;
S = [1:10];
Ni = [1:100];
Si = interp1(N, S, Ni, 'spline')

3.某气象观测站测得某日6:00-18:00之间每隔2h的室内外温度(°C)如下表所示。
时间 6 8 10 12 14 16 18
室内温度 18.0 20.0 22.0 25.0 30.0 28.0 24.0
室外温度 15.0 19.0 24.0 28.0 34.0 32.0 30.0
使用三次样条插值分别求出该日室内外6:30-17:30之间每隔2h各点的近似温度,并绘制插值后的温度曲线。

time=6: 2: 18;
out=[18.0 20.0 22.0 25.0 30.0 28.0 24.0];
in=[15.0 19.0 24.0 28.0 34.0 32.0 30.0];
t=6.5: 2: 17.5;
o=interp1(time,out,t,'spline');
i=interp1(time,in,t,'spline');
plot(t,o);
plot(t,i);

4.已知lgx在[1,101]区间10个整数采样点的函数值如下表所示,

x 1 11 21 31 41 51 61 71 81 91 101
lgx 0 1.0414 1.3222 1.4914 1.6128 1.7076 1.7853 1.8513 1.9085 1.9590 2.0043
试求lgx的5次拟合多项式p(x),并绘制lgx和p(x)在[1,101]区间的函数曲线。

x=1:10:101;
lgx=[0 1.0414 1.3222 1.4914 1.6128 1.7076 1.7853 1.8513 1.9085 1.9590 2.0043];
px=polyfit(x,lgx,5);
px=polyval(px,x);%y = polyval(p,x) 计算多项式 p 在 x 的每个点处的值
plot(x,lgx,x,px);

5.有3个多项式,试进行下列操作:
(1)求。

xs_p1=[1 2 4 0 5];
p1=poly2sym(xs_p1);%poly2sym()按照系数向量转化为多项式
xs_p2=[1 2];
p2=poly2sym(xs_p2);
xs_p3=[1 2 3];
p3=poly2sym(xs_p3);
xs_p23=conv(xs_p2,xs_p3);%conv(p2,p3)的系数向量相乘
p23=poly2sym(xs_p23);
p=p1+p23

(2)求的根。

xs_p=sym2poly(p);%sym2poly()获取多项式的系数向量
r_p=roots(xs_p)%roots()根据多项式系数向量求根

(3)当x取矩阵A的每一元素时,求的值。其中:

sysm A y
A=[-1 1.2 -1.4; 0.75 2 3.5; 0 5 2.5];
y=polyval(xs_p,A)

6.求函数在指定点的数值导数。
(1)

syms x dy
f=sin(x).^2+cos(x).^2
df=diff(f)
x=[pi/6,pi/4,pi/3,pi/2];
dy=subs(df,x)

(2)

syms x dy
f=sqrt(x^2+1)
df=diff(f)
x=1:3
dy=subs(df,x)

7.用数值方法求定积分。
(1)的近似值。

f=@(t)sqrt(cos(t.^2)+4.*sin((2*t).^2)+1);
fy=quad(f,0,2*pi)

(2)

f=@(x)log(1+x)./(1+x.^2);
fy=quad(f,0,1)
posted @ 2022-06-14 15:00  行呗  阅读(2365)  评论(0)    收藏  举报