第六章代数方程的解 代数方程的图解法 多项式型方程的准解析解法 般非线性方程数值解
第六章 代数方程的解 • 代数方程的图解法 • 多项式型方程的准解析解法 • 一般非线性方程数值解
6.1代数方程的图解法 元方程的图解法 例:用图解法求c3sim(4+2)+4c051c0(2)=05 exp(3 t) sin(4 t+2)+4 exp(0.5 t)cos(2 t)0.5 ezplot('exp(-3 t) 2.5 ssin(4 *t+2)+4 exp (-0.5*t)*cOs(2*t 0.5 0.5,05]) 0 >> hold on >>line([O,5]0,0]) %同时绘制横轴
6.1 代数方程的图解法 • 一元方程的图解法 例: >> ezplot('exp(-3*t)… *sin(4*t+2)+4*exp… (-0.5*t)*cos(2*t)-… 0.5',[0 5]) >> hold on, >> line([0,5],[0,0]) % 同时绘制横轴
验证: syms xt; t=3.52028; vpa(exp(-3*t)*sin(4 t+2)+ 4*exp(-0.5*t)*COS(2*t)-0.5) ans 19256654148425145223200161126442e4 10 exp(3 t) sin(4 t+2)+4 exp(-05 t)cos(2 t)-05 3520235202350235033.52033.520335203
验证: >> syms x t ; t=3.52028; vpa(exp(-3*t)*sin(4*t+2)+… 4*exp(-0.5*t)*cos(2*t)-0.5) ans = -.19256654148425145223200161126442e-4
二元方程的图解法 例 x2e-xy /2+e-x/2 sin(xy)=0 用图解法求 cos(x+y2)+y2exty=0 ezplot(x 2*exp(-X*y2/2)+exp(-x/2)*sin(x*y),) 6第一个方程曲线 x2 exp( y2/2)+exp(x/2)sin( y)=0 > hold on %保护当前坐标系 ezplot(y/2 cos(y+x/2)+ x/2*exp(x+y))
• 二元方程的图解法 例: >> ezplot('x^2*exp(-x*y^2/2)+exp(-x/2)*sin(x*y)') % 第一个方程曲线 >> hold on % 保护当前坐标系 >> ezplot('y^2 *… cos(y+x^2) +… x^2*exp(x+y)')
y2 oos(+x2)+x2 exp(x+y)=0 方程的图解法 仅适用于一元 二元方程的求根 问题
• 方程的图解法 仅适用于一元、 二元方程的求根 问题
6.1.2多项式型方程的准解析解法 例:用图解方法求(2+y2-1=0 0.75x3-y+0.9=0 >> ezplot(x^2+y^2-1); hold on%绘制第一方程的曲线 >> ezplot(0.75*x^3-y+0.9)%绘制第二方程 075×5y+09=0 为关于x的6次多项式方程 应有6对根。图解法只能 显示求解方程的实根
6.1.2 多项式型方程的准解析解法 • 例: >> ezplot('x^2+y^2-1'); hold on % 绘制第一方程的曲线 >> ezplot(‘0.75*x^3-y+0.9’) % 绘制第二方程 为关于x的6次多项式方程 应有6对根。图解法只能 显示求解方程的实根
般多项式方程的根可为实数,也可为复数 可用 MATLAB符号工具箱中的 solve(函数。 最简调用格式: S=solve(eqn, eqn, .,eqn,) (返回一个结构题型变量S,如Sx表示方程的根。) 直接得出根:(变量返回到 MATLAB工作空间) IX,.=solve(eqn, eqn2,,,eqnn) 同上,并指定变量 IX,.=solve(eqn, eqn,,,eqn,,X,...)
• 一般多项式方程的根可为实数,也可为复数。 可用MATLAB符号工具箱中的solve( )函数。 最简调用格式: S=solve(eqn1 ,eqn2 ,…,eqnn ) (返回一个结构题型变量S,如S.x表示方程的根。) 直接得出根: (变量返回到MATLAB工作空间) [x,…]=solve(eqn1 ,eqn2 ,…,eqnn ) 同上,并指定变量 [x,…]=solve(eqn1 ,eqn2 ,…,eqnn,’x,…’)
例:用 solve函数求{x2+y2-1=0 0.75x3-y+0.9=0 syms x y, >>[xy]= solve(x^2+y^2-1=0,75*x^3/100-y4+9/10=0) 98170264842676789676449828873194] 5539517605683456007794413882735-35471976465080793456863789934944*1 -55395176056834560077984413882735+.35471976465080793456863789934944*1 35696997189122287798839037801365] [.86631809883611811016789809418650-1.2153712664671427801318378544391*i [.86631809883611811016789809418650+1.2153712664671427801318378544391* 19042035099187730240977756415289] 92933830226674362852985276677202-21143822185895923615623381762210*1 [.92933830226674362852985276677202+.21143822185895923615623381762210*1 93411585960628007548796029415446] [-1.491606407565822317478721695925970588200721402267753918827138837*1 [-1.4916064075658223174787216959259+70588200721402267753918827138837*订
• 例: >> syms x y; >> [x,y]=solve('x^2+y^2-1=0','75*x^3/100-y+9/10=0') x = [ -.98170264842676789676449828873194] [ -.55395176056834560077984413882735-.35471976465080793456863789934944*i] [ -.55395176056834560077984413882735+.35471976465080793456863789934944*i] [ .35696997189122287798839037801365] [ .86631809883611811016789809418650-1.2153712664671427801318378544391*i] [ .86631809883611811016789809418650+1.2153712664671427801318378544391*i] y = [ .19042035099187730240977756415289] [ .92933830226674362852985276677202-.21143822185895923615623381762210*i] [ .92933830226674362852985276677202+.21143822185895923615623381762210*i] [ .93411585960628007548796029415446] [ -1.4916064075658223174787216959259-.70588200721402267753918827138837*i] [ -1.4916064075658223174787216959259+.70588200721402267753918827138837*i]
验证 >>[eval(x^2+y^2-1)eva(75*x:^3/100y+9/10) ans 000 1e-31 [.5e-30+.1e-30*i 000000 [.5e-30-le-30* 由于方程阶次可能太高,不存在解析解。然而 可利用 MATLAB的符号工具箱得出原始问题的高精 度数值解,故称之为准解析解
• 验证 >> [eval('x.^2+y.^2-1') eval('75*x.^3/100-y+9/10')] ans = [ 0, 0] [ 0, 0] [ 0, 0] [ -.1e-31, 0] [ .5e-30+.1e-30*i, 0] [ .5e-30-.1e-30*i, 0] 由于方程阶次可能太高,不存在解析解。然而, 可利用MATLAB的符号工具箱得出原始问题的高精 度数值解,故称之为准解析解
x+3y3+22=1/2 例:求解{x2+3y+2 2 x3+23x+2y2=2/4 >>[xy,z= solve(x+3*y^3+2*2^2=1/21,x2+3*y+z^3=2 2x^3+2*2+2*y^2=2/4); >>X(22)2y(22,(22) ans≡ 1.0869654762986136074917644096117 ans≡ 37264668450644375527750811296627e-1 ans 89073290972562790151300874796949
• 例: >> [x,y,z]=solve('x+3*y^3+2*z^2=1/2', 'x^2+3*y+z^3 =2 ' ,'x^3+2*z+2*y^2=2/4') ; >> x(22),y(22),z(22) ans = -1.0869654762986136074917644096117 ans = .37264668450644375527750811296627e-1 ans = .89073290972562790151300874796949