代数方程和微分方程求解PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方程组的符号求解得到的是解析式。其优点是可以得到含 未知参数的解,有利于进一步的分析。缺点是计算效率低, 且复杂的问题一般得不到解析解。
2020/12/12
5
常微分方程组的符号求解
常微分方程(组)的符号运算函数为dsolve,调 用格式为
变量=dsolve(eq1,eq2,…);
其中equ1, equ2等是字符串,描述微分方程。方 程形式与solve语句中类似,其中的导数项利用D 表示,Dy,D2y分别描述y的一阶和二阶导数。初 值和边值条件也利用方程描述。
2020/12/12
11
2020/12/12
12
线性方程组的求解
线性方程组 Ax=b
可以利用矩阵除法直接得到。但当系数矩阵为稀 疏矩阵时,利用稀疏矩阵函数可以得到更高的计 算效率。 稀疏矩阵利用函数
A1=sparse(A); 定义。
2020/12/12
13
例4.4:求解n阶线性方程组
2 1
0 x1 1
1.许多方法只有当 接近所求的解时,迭代才收敛。 2.当方程有多个解时, 需要充分靠近所求的解,
才能保证迭代收敛到这个解。
Matlab中非线性方程求根的函数是fzero,调用 格式为
p=fzero(fun,x0); 其中x0是初始值。fun可以是字符串以指示函数 名,也可以是以@开头的函数句柄如 ‘sin’,@sin,@(x)sin(x) 都可以,应用最灵活的是后一种。
第4代数方程和微分方程求解
2020/12/12
1
代数方程组的符号解
代数方程组的符号求解函数为solve函数,函数调 用格式为
x=solve(fun1,fun2,…,funm,var1,…,varm) 其中fun1, fun2,…为符号表达式。var1,var2,…. 为符号变量,指明所求解的变量。如果不指明所求 解的变量,则系统根据变量在英文字母中与x的接 近程度选择。
'y(0)=1','Dy(0)=2')
y = exp(t)*cos(t) + exp(t)*sin(t)
2020/12/12
7
代数方程的数值方法
多项式求根
多项式 在matlab语言中,多项式利用行向量表示。如向量
u=[1 2 0 -5 4] 用作多项式函数时,与多项式
px42x35x4
对应。因此,多项式运算对应向量的相关运算,如 多项式的加法对应向量的加法等。
1 2 1
x2 1
1 2
x3
1
0 1
1 0
1
2
xn
1
对n=1000,分别利用正常方法和稀疏矩阵求
解,并比较计算时间。
2020/12/12
14
参考程序: n=1000; A=diag(2*ones(1,n))+diag(ones(1,n1),1)+diag(ones(1,n-1),-1); A(n,1)=1;b=ones(n,1); tic x=A\b; toc A1=sparse(A); tic x=A1\b; toc 输出结果: Elapsed time is 0.144504 seconds. Elapsed time is 0.009240 seconds.
9
多项式求根的函数为 r=roots(p)
求得多项式p的所有根。
例4.3:求多项式 x 6 2 x 5 0 1 x 4 3 3 x 8 3 2 2 x 8 2 2 13 x 6 19 22 6 的根并在多项式图形中表示。
2020/12/12
10
参考程序:
q =[1 -20 138 -328 -223 1692 1260]; r=roots(q); x=-2.2:0.05:8; y=polyval(q,x); y1=polyval(q,r); plot(x,y,r,y1,'p') xlim([-2.2,8]) legend('polynomial','roots')
2020/12/12
2
solve函数还有另一种调用形式 x=solve(eq1,eq2,…,eqm,var1,…,varm);
其中 eq 是字符串,定义方程。 var也是字符串, 指明所求解的变量。
例4.1 求解线性方程组
ax y z 1 x ay z 2 x y az 3
2020/12/12
3
参考程序 syms x y z a [u,v,w]=solve(a*x+y+z-1,x+a*y+z-... 2,x+y+a*z-3,x,y,z)
输出结果: u= (a - 4)/(a^2 + a - 2) v= 2/(a + 2) w= (3*a)/(a^2 + a - 2)
2020/12/12
2020/12/12
6
例4.2:求微分方程
dd22yt 2ddyt2y0
的通解和在初始条件y(0)=1,y’(0)=2下的特解
>> y=dsolve('D2y-2*Dy+2*y=0') y = C24*exp(t)*cos(t) + C25*exp(t)*sin(t)
>>y=dsolve('D2y-2*Dy+2*y=0',...
2020/12/12
8
多项式运算的几个常用函数:
P=conv(p1,p2);
%多项式乘法
[d,r]=deconv(p1,p2); %多项式除法
Dp=polyder(p);
%多项式的导数
Ip=polyint(p) %多项式的积分(原函数)
Y=polyval(p,x)
%输出多项式p在向量x
的值
2020/12/12
来自百度文库
4
也可以利用下面的语句求解
>>
s=solve('a*x+y+z-1','x+a*y+z-2','x+y+a*z-
3','x','y','z')
s=
x: [1x1 sym]
y: [1x1 sym]
z: [1x1 sym]
其中,s是结构形数据。可以用下面的方法显示求得的解
>> s.x
ans =
(a - 4)/(a^2 + a - 2)
2020/12/12
15
非线性方程求根
求解非线性方程
f(x)=0
一般利用以下形式的迭代方法:
xk+1=(xk) k=1,2,…
如著名的Newton迭代法
xk1
f (xk) f (xk)
就是众多迭代方法中的一种。
2020/12/12
16
迭代是一种逐步近似的过程,在迭代求根中,需 要给定初始近似 来启动迭代过程。初始近似 的选取非常重要,这是因为