我是靠谱客的博主 优秀路人,最近开发中收集的这篇文章主要介绍matlab 程序篇(1/3),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

求分段函数的值

请建立函数式文件,用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的值。

程序代码及运行结果:

代码:

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];

for i=1:length(x)

if x(i)<0&x(i)~=-3

        y(i)=x(i)^2+x(i)-6;

    elseif x(i)>=0&x(i)<5&x(i)~=2&x(i)~=3

        y(i)=x(i)^2-5*x(i)+6;

    else

        y(i)=x(i)^2-x(i)-1;

    end

end

y

结果:

y =14.0000  11.0000  2.0000  1.0000  -0.2500  5.0000  19.0000

3、硅谷公司员工的工资计算方法如下:

(1) 工作时数超过120小时者,超过部分加发15%。

(2) 工作时数低于60小时者,扣发700元。

(3) 其余按每小时84元计发。

试用switch语句编程按输入员工的工时数(分别为54,100,140小时),计算应发工资。

程序代码及运行结果:

代码:

time=[54,100,140];

for i=1:3

    switch time(i)

        case (time(i)>120)

            gongzi(i)=120*84+(120-time(i))*84*0.15;

        case (time(i)<60)

            gongzi(i)=time(i)*84-700;

        otherwise

            gongzi(i)=time(i)*84;

    end

end

gongzi

结果:

gongzi =4536        8400       11760

4根据,求π的近似值。当n分别取100100010000时,结果是多少?要求:分别用for循环结构来实现。

程序代码及运行结果:

代码:

function[pi] = sumfact(n)

format compact

s=1;

n=[100 1000 10000]

for j=1:3

    sum=0;

for i=1:n(j)

    s=1/(i^2);

    sum=sum+s;

end

pi(j)=(6*sum)^(1/2);

end

end

结果:

ans =3.1321    3.1406    3.1415

5、根据,求:(1) y<3时的最大n值。(2) (1)n值对应的y值。要求:用while循环结构来实现。

程序代码及运行结果:

代码:

y=0;

n=0;

while y<3

    n=n+1;

    y=y+(1/(2*n-1));

end

y=y-1/(2*n-1)

n=n-1

结果:

y=2.9944

n=56

%%if程序解决分段函数 

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
for i=1:length(x)
if x(i)<0&x(i)~=-3
        y(i)=x(i)^2+x(i)-6;
    elseif x(i)>=0&x(i)<5&x(i)~=2&x(i)~=3
        y(i)=x(i)^2-5*x(i)+6;
    else 
        y(i)=x(i)^2-x(i)-1;
end
end
y

%%iswitch程序解决进货问题
time=[54,100,140];
for i=1:3
    switch time(i)
        case (time(i)>120)
            gongzi(i)=120*84+(120-time(i))*84*0.15;
        case (time(i)<60)
            gongzi(i)=time(i)*84-700;
        otherwise
            gongzi(i)=time(i)*84;
    end
end
gongzi

%%for程序解决递归算式问题(等比等差类别)

n=[100 1000 10000];
for j=1:length(n)
sum=0;
for i=1:n(j)
    sum=sum+1/i^2;
end 

end
pi(j)=(6*sum)^(1/2)

s=0;
n=1;
for i=1:98
s=s+1/n;
n=n+1;
end
s

%%for程序解决递归算式问题(阶乘类)

s=1;
sum=0;
for i=1:3
s=s*i;
sum=sum+s;
end
sum

%%while程序解决临界问题(求小于三的最大数列)
y=0;n=0;

while(y<3);
    n=n+1;
    y=y+1/(2*n-1);
end
y

最后

以上就是优秀路人为你收集整理的matlab 程序篇(1/3)的全部内容,希望文章能够帮你解决matlab 程序篇(1/3)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部