第四周作业-插值问题

BUPT大一下Matlab选修

北邮Matlab选修 Week 4 插值问题(两道题)

绘图

问题描述

一个学校想要建一个钟楼,需要对其进行建模,将方程$ z=\frac{1}{x^2+y^2} $ 作为模型,编写一个绘制钟楼的脚本。$ x $、$ y $的取值范围是$ -0.75 \leq x \leq +0.75 $,数据间隔为$0.05$。设置坐标轴,使$ x $、$ y $的所有区域可见。并且$z$的范围在0300之间。使用surf()绘制图像。

程序设计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
%question1.m
function question1()
    x_min = -0.75;
    x_max = 0.75;
    y_min = -0.75;
    y_max = 0.75;
    interval = 0.05;
    x = x_min:interval:x_max;
    y = y_min:interval:y_max;
    [X, Y] = meshgrid(x, y);
    Z = 1 ./ (X.^2 + Y.^2);
    Z_max = 300;
    xlim([x_min x_max]);
    ylim([y_min y_max]);
    zlim([0 Z_max]);
    surf(X, Y, Z);
end

计算结果

1
>> question1

机器零件刷漆用料计算问题

问题描述

编写程序讨论下面两种数列生成算法的稳定性

数列$P_n=[1,\frac{1}{3},\frac{1}{9},\frac{1}{27},\cdots]$

  • 设$P_0=1$,递推公式$P_n=\frac{1}{3} \times P_{n-1}$
  • 设$P_0=1$,$P_1=\frac{1}{3}$,递推公式$P_n=\frac{10}{3} \times P_{n-1} - P_{n-2}$

程序设计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
%question2.m
function question2()
p0 = 1;
N = 35;
tolerance = 0.01;
flag2 = N + 1;

pn1 = zeros(1, N);
pn1(1) = p0;
for n = 1:N-1
    pn1(n+1) = (1/3) * pn1(n);
end

pn2 = zeros(1, N);
pn2(1) = p0;
pn2(2) = 1/3;
for n = 1:N-2
    pn2(n+2) = (10/3) * pn2(n+1) - pn2(n);
end

for n = 1:N
    if abs(pn1(n) - pn2(n)) > tolerance
        flag2 = n;
        break;
    end
end

hold on;
plot(1:N, pn1, 'r');
plot(1:N, pn2, 'b');
plot(flag2, pn1(flag2), 'o', 'MarkerSize', 10, 'MarkerFaceColor', 'yellow');

xlabel('n');
ylabel('p[n]');
legend('pn1','pn2','Point');
end

计算结果

1
>> question2

Progress Infinite!
使用 Hugo 构建
主题 StackJimmy 设计