数学软件与实验课后题.doc
文本预览下载声明
数学软件与数学实验作业
3.计算,要求:
(1)用循环结构并使用上体的M函数文件
①s=0;
for k=1:10
f=f1(k);
s=s+f;
end
s
结果:s =
4500244
②function f=f4(n)
f=0;
for i=1:n
f=f+f1(i);
end
(2)用help命令查询sum和prod的用法,并用这两个指令完成计算。
n=input(enter a number:);
sum=0;
for i=1:n
sum=sum+prod([1:i]);
end
sum
4.用尽可能多的方法编写Matlab函数mysum1.m来计算和式f(n)=.其中,n为函数的输入变量,函数输出为f(n)的值,分析指出他们执行效率的高低,给出理由。
①n=input(enter a number:);
s=0;
for i=1:n
t=log(1+1/(i*i));
s=s+t;
end
s
②function f=mysum1(n)
f=0;
k=0;
while kn
k=k+1;
f=f+log(1+1/(k*k));
end
③function f=mysum11(n)
if n==1
f=log(2);
elseif n1
f=mysum11(n-1)+log(1+1/(n*n));
else
error(wrong input parameter!);
end
④function f=mysum12(n)
k=1:n;
s=log(1+1./(k.*k));
f=sum(s);
5.、用尽可能多的方法编写Matlab函数mysum1.m来计算如下和式:
f(n)=1/(1*4)+1/(4*7)+…+1/((3n-2)*(3n+1))
其中,n为函数的输入变量,函数输出为f(n)的值。
①function f=mysum2(n)
f=0;
for k=1:n
t=1/((3*k-2)*(3*k+1));
f=f+t;
end
②function f=mysum21(n)
f=0;
k=0;
while kn
k=k+1;
t=(3*k-2)*(3*k+1);
f=f+1/t;
end
③function f=mysum22(n)
if n==1
f=1/4;
elseif n1
t=(3*n-2)*(3*n+1);
f=mysum22(n-1)+1/t;
else
error(wrong input parameter!);
end
④function f=mysum23(n)
k=1:n;
t=(3.*k-2).*(3.*k+1);
f=sum(1./t);
6.写一个程序用于得到阶乘不超过10^100的最小整数。
for k=1:5000000000000
f=1;
for i=1:k
f=f*i;
end
if(f=10^100)
continue;
end
break;
end
k
结果:k =
70
7.写一个函数rs=f(s),对输入放入字符串变量s,删除其中的小写字母,然后将原来的大写字母变为小写字母,得到rs的返回
function rs=fy(s)
k=length(s);
p=[];
for i=1:k
if s(i)=as(i)=z
p=[p,i];
elseif s(i)=As(i)=Z
s(i)=char(s(i)+32);
end
end
s(p)=[];
rs=s;
8. 设计函数min_element.m,其功能是在一个二维矩阵中找出其最小元素,函数定义如下:[minEle,row,column]=min_element(matrix)
其中,matrix是一个二维矩阵,minEle是返回的最小元素的值,row是其所在行,coulmn是其所在列。要求:
在调用函数时,要写出调用的语句;
不适用Matlab函数min编写;
(3)使用min函数和find函数编写。
function [min,row,column]=min_element(x)
n=size(x);
min=x(1);
for i=1:n(1)
for j=1:n(2)
if x(i,j)min
min=x(i,j);
[row,column]=find(x=min);
end
显示全部