实验4 MATLAB 函数文件与程序流程的控制

实验4 MATLAB 函数文件与流程的控制

1. 简单问题应用举例

在这里插入图片描述
实验4 MATLAB 函数文件与程序流程的控制_第1张图片
实验4 MATLAB 函数文件与程序流程的控制_第2张图片

% 建立函数文件zyxsqrt.m,写入以下内容
function an=zyxsqrt(A)
    if A<=0
        disp('data error!');
        an=-1;% 返回一个负值
        return;
    end
    % 任取一个a0,如a0=1
    a0=1;
    r=1;%存放两次相邻迭代插值的绝对值,初值为1
    while r>=1.0e-5
        an=(a0+A/a0)/2;
        r=abs(an-a0);
        fprintf("每次逼近的值:%f,相邻迭代误差:%f\n",a0,r);
        a0=an;
    end
    fprintf("近似得到的值为:%f\n",an);
end

在命令行窗口输入:an=zyxsqrt(2);
在命令行窗口输出:
每次逼近的值:1.000000,相邻迭代误差:0.500000
每次逼近的值:1.500000,相邻迭代误差:0.083333
每次逼近的值:1.416667,相邻迭代误差:0.002451
每次逼近的值:1.414216,相邻迭代误差:0.000002
近似得到的值为:1.414214

在这里插入图片描述
在这里插入图片描述

% 新建函数文件primeorcomposite.m
function [prime,m,n]=primeorcomposite(M)
    format compact;
    prime=1;% 如果是质数则返回1
    if M<=0
        fprintf("%d是个负数\n",M);
        m=0;n=0;prime=-1;
        return;
    end
    for m=2:fix(sqrt(M)) %[2,fix(sqrt(M))]中进行判断
        if mod(M,m)==0 % 利用取余函数进行判断
            n=M/m;
            prime=0;
            fprintf("%d是合数(composite number)\n两个因数分别是%d,%d\n",M,m,n);
            return;
        end
    end
    m=1;n=M;
    fprintf("%d是质数。\n",M);
    return;
end

在命令行窗口输入:[a,m,n]=primeorcomposite(50)
在命令行窗口输出:
50是合数(composite number)
两个因数分别是2,25
a =
0
m =
2
n =
25

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实验4 MATLAB 函数文件与程序流程的控制_第3张图片
实验4 MATLAB 函数文件与程序流程的控制_第4张图片

你可能感兴趣的:(Matlab)