- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学应用软件实验八函数调用及嵌套
院(系) 学号 姓名 成绩 课程
名称 数学应用软件实验 实验项目
名 称 函数调用及嵌套 指导
教师 一 、实验目的
熟悉自定义函数的创建方法;
熟悉子函数的调用方式;
了解函数递归调用;
4.了解函数的作用域。
实验内容与步骤(过程及结果)
图 9
解:源代码为:
function [S C]=SCT2(x,y)
%计算三角形的面积及周长;
%example: x=[0 4 4]; y=[0 0 3];
[a,b,c,d]=Distance(x,y);
S=Square(a,b,c,d,e);
C=Perimeter(a,b,c,d);
s=r;
my_plot(x,y,s)
function my_plot(x,y,s)
%自定义画图函数
fill(x,y,s);
legend(triangle)
end
end
function [a,b,c,d,e]=Distance(x,y)
%自定义函数求三角形的三边长度;
a=sqrt((x(1)-x(2))^2+(y(1)-y(2))^2);
b=sqrt((x(2)-x(3))^2+(y(2)-y(3))^2);
c=sqrt((x(3)-x(4))^2+(y(3)-y(4))^2);
d=sqrt((x(1)-x(4))^2+(y(1)-y(4))^2);
e=sqrt((x(2)-x(4))^2+(y(2)-y(4))^2);
end
function S=Square(a,b,c,d,e)
%自定义函数求三角形的面积;
p1=(a+e+d)/2;
S1=sqrt(p1*(p1-a)*(p1-e)*(p1-d));
p2=(b+c+e)/2;
S2=sqrt(p2*(p-b)*(p-c)*(p-e));
S=S1+S2;
end
function C=Perimeter(a,b,c,d)
%自定义函数求三角形的周长;
C=a+b+c+d;
end
定义填充函数:
function my_plot(x,y,s)
%自定义画图函数
fill(x,y,s); %填充
legend(凸四边形)
end定义实现功能函数,其中调用my_plot函数
function SCT2(x1,y1)
s=b;
my_plot(x1,y1,s)
2.编写函数文件,主函数文件头如下,求解线性方程组,并至少找三个实例进行验证。要求:至少调用两个自定义函数。
function [B,SS,Tag]=MyLES(A,b)
% 功能:求解线性方程组;
% A,b分别为系数矩阵及右端项;
% B为基础解系构成的矩阵,无解时B=[],有唯一解时,B=SS=唯一解;
% SS为特解,无解时SS=[];
% Tag为求解结果标识, Tag=0表无解,Tag=1表存在唯一解,Tag=2表存在无穷多解。
end
解:源代码为:
function [B,SS,Tag]=MyLES(A,b)
[m n]=size(A);
a1=rank(A);
a2=rank([A,b]); %增广矩阵的秩
c=a1-a2;
if c==0
Tag=1;
if a1==n %克拉默法则求
for i=1:n
temp=A;
temp(:,i)=b;
B(i)=det(temp)/det(A);
end
SS=B;
else a1n
temp=rref([A,b]); %化为最简行列式
count=a1+1;
temp2 = zeros(m,n-a1);
for k=1:n-a1
temp2(:,k)=temp(:,k+a1);
end
B=temp2;
Tag=2;
SS=temp(:,n+1);
end
else
Tag=0;
B=[];
SS=[];
S=方程组无解!;
end
结果截图为:
第一组测试数据(唯一解):
A=[1 1 2 3;3 -1 -1 -2;2 3 -1 -1;1 2 3 -1];
b=[1 -4 -6 -4];
[B,SS,Tag]=MyLES(A,b)
结果如下图12:
第二组数组测试(无穷多个解)
A=[1 3 5 -4 0;1 3 2 -2 1;1 -2 1 -1 -1;1 -4 1 1 -1;1 2 1 -1 1];
b=[1 -1 3 3 -1]
文档评论(0)