- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
簡单的以MATLAB作数值计算
简单的以MATLAB作数值计算
内容结构
M函数的编写;
微分方程的数值解;
积分的数值计算;
插值与拟合, 神经网络.
一. M函数的编写
M函数文件的格式有严格的规定,它必须以“function”开头,比较简单的格式为:
function 输出变量=函数名称(输入变量)
语句;
例 单击指令窗口工具栏的按钮,进入MATLAB的程序编辑器窗口后,输入:
function y=egfun(c,t)
y=c(1)*exp(c(2)*t);
保存以后(命名为egfun),在指令窗口输入:
clear;
egfun([2 2],2) % 函数可以传递参数
结果为:
ans =
109.1963
又输入:
syms t u v % 令t,u,v为符号变量
egfun([u,v],t) % 函数可以传递参数
结果为:
ans =
u*exp(v*t)
任意M文件中的第1个函数称为主函数.主函数可以有任意多个子函数,它们可以作为主函数的子函数.
大多数情况下,主函数是M文件中可以从MATLAB命令或从另一个M文件函数调用的唯一函数.调用该函数时,使用定义该函数的M文件的名称.
例 average 函数在文件average.m中.
function y=average(x) % 计算矢量元素的平均值
y=sum(x)/length(x);
可以从MATLAB命令行用下面的命令计算3个数的平均值
average([2 5 2])
注意:一般使主函数的名称与M文件的相同.如果函数名与文件名不同,必须用文件名调用函数.
总结
函数式M文件比较标准的格式为:
function 因变量=函数名(自变量)
例,function [x,y]=myfun(a,b,c) %函数定义行
% H1行 用一行文字来综述函数的功能
% 帮助文本 用一行或多行文本解释怎么使用函数
% 在命令行输入“helpfunctionname”时可以使用它
% 函数体 一般从第一个空白行后开始
% 注释 描述函数的行为,输入输出的类型
% 在命令行输入“helpfunctionname”时不会显示注释文本
x=prod(a,b); % 开始编写函数代码
例 编写求平均值和均方差的函数M文件.
function [mean,stdev]=stat(x)
% stat mean and standard deviation
% for a vector x,stat(x) returns the mean and standard deviation of x
% for a matrix x,stat(x) returns two row vectors containing,respectively,
% the mean and standard deviation of each column.
[m n]=size(x);
if m==1
m=n; % handle case of a row vector
end
mean=sum(x)/m;
stdev=sqrt(sum(x.^2)/m-mean.^2);
输入:
x=[2 5 -7 8 3];
[xm,xd]=stat(x)
结果为:
xm =
2.2000
xd =
5.0359.
简单图形的绘制
例 在同一窗口中绘制函数的图形.
程序为:
x=0∶pi/100∶2*pi;
y1=sin(x);
y2=2*sin(x+pi/6);
y3=3*sin(x+pi/3);
plot(x,y1,‘-r’,x,y2,‘∶g’,x,y3,‘-.b’)
grid
hold on
legend(‘sin(x)’,‘2sin(x+pi/6)’,‘3sin(x+pi/3)’)
title(‘sine函数系’)
xlabel(‘X轴’)
ylabel(‘Y轴’)
gtext(‘sin(x)’)
gtext(‘2sin(x+pi/6)’)
gtext(‘3sin(x+pi/3)’)
hold off
例 统计图形
随机产生一个三阶矩阵,画此矩阵的直方图.
程序为:
rand(‘seed’,5)
y=fix(10*rand(3));
subplot(2,2,1);bar(y);title(‘直方图’);
subplot(2,2,2);bar3(y);title(‘三维直方图’);
subplot(2,2,3);pie(y);title(‘饼图’
文档评论(0)