- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab培训讲义资料.doc
/index_clear.html?fxxy=115-7-25rid=1111119
MATLAB 解方程
讲师:施六五
邮箱:shiliuwu@126.com
主要内容:
界面设置
编辑和调试
解方程
拟合
积分
优化
一、界面的设置
Perference设置字体,属性等
Set path 添加路径,增加具体的子函数
Desktop→Desktop Layout→Default
Command window(tab type)
Command history
帮助窗口(doc docsearch look for )
二、编辑与调试
M文件:函数文件和脚本文件
文件的命名:不能与matlab内部函数同名
多行注释:1.Ctrl+R,Ctrl+T 2.if o end,
3.%{ %}
自动缩进:Ctrl+I
双击变量查看该程序的所有的该变量
做标记Ctrl+F2更多右键信息
设置断点,F5,F10,F11,Go until Cursor
分块执行%%
程序中断:命令窗口输入Ctrl+C
cell模式 %% 按住Ctrl+Enter解方程
线性方程
非线性方程
隐函数方程
带参数的方程求解
微分方程
积分方程
优化
线性方程组Ax=b
x=A\b
矩阵的分解求解线性方程组
矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。(具体可以查看帮助文件)
非线性方程求解
函数:fzero 求解单变量非线性方程的根
基本用法:z=fzero(fname,x0,tol,trace)
例子:
初值的选取
Data cursor 获取坐标
ar
函数:fsolve
基本用法:
X=fsolve(@fun,x0,options)
clc;clear;close all
f{1}=inline(x-0.6*sin(x)-0.3*cos(y));
f{2}=inline(y-0.6*cos(x)+0.3*sin(y));
hold on
h=arrayfun(@(i)ezplot(f{i},[-1,1,-1,1]),[1,2]);
set(h(1),color,r)
function y=myfun(x)
y(1)=x(1)-0.6*sin(x(1))-0.3*cos(x(2));
y(2)=x(2)-0.6*cos(x(1))+0.3*sin(x(2));
end
隐函数的求解
给定一个隐函数的自变量,通过数值方法求解得到因变量。
输入一个数组:
f=@(x)@(y)(exp(y)+x.^y).^(1/y)-x.^2.*y
f1=@(x)arrayfun(@(a)fsolve(f(a),rand),x)
f =
@(x)@(y)(exp(y)+x.^y).^(1/y)-x.^2.*y
f1 =
@(x)arrayfun(@(a)fsolve(f(a),rand),x)
f1就是一个匿名函数,输入可以是一个数组。
带参数的非线性方程的求解
a=[1 3 6 8 5 3 2 1 1 2];
b=-fliplr(a);
xy=zeros(2,length(a));
index=1:length(b);
m=arrayfun(@(t)fsolve(@(x)myfun1(x,a(t),b(t)),xy(:,t)),index,UniformOutput,false);
微分方程
常微分方程求解:
解析解的求解,用dsolve函数。
基本用法:
dsolve(eq1,eq2,...,cond1,cond2,...,v)
具体可以查看下帮助文件。当微分方程不能得到解析解,matlab有许多函数求解微分方程得到数值解。
函数:ode45
基本用法:
[T,Y] = solver(odefun,tspan,y0,options)
下面看一个例子:
function dy=myfun_3(x,y)
dy=zeros(2,1);
dy(1)=cos(y(1)-sin(x+y(2))+dy(2))-sin(2*x/y(1)+y(2));
dy(2)=-2*x*y(2)+y(1)+sin(x-dy(1))*y(1);
clc;clear;close all
options = odeset(RelTol,1e-4,AbsTol,[1e-4 1e-4 ]);
[T,Y] = ode45(@myfun_3,[0 2.5],[1 0.25],options);
plot(T,Y(:,1),r*-,T,Y(:,2),b+-)
二阶微分方程的求解(帮助文件exmple2)
对于多阶方程的求解主要是自己使用相关的
文档评论(0)