您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > MATLAB第五课 代数方程求解
第五章:代数方程求解和其他符号函数1、解基本代数方程2、二次方程求解3、符号方程绘图4、高阶方程求解5、解方程组6、方程展开与合并7、使用指数和对数函数求解方程8、函数的级数表示9、习题1解基本代数方程x+3=0???x+3=0|Error:Theexpressiontotheleftoftheequalssignisnotavalidtargetforanassignment.x=3x=3用solve命令解方程x=solve('x+3=0')x=-3x=solve('x+3')x=-3当你传递给solve函数x+3时,MATLAB假设你传递的就是x+3=0提问:如果你求解的方程有时候可能含有多个符号,如ax+5=0,这个时候怎么求解?提问:如果你在MATLAB中输入方程ax+5=0,MATLAB只认为求解x。solve('a*x+5')ans=-5/asolve('a*x+5','a')ans=-5/x提问:上面研究了简单的一次方程,那么遇到二阶、三阶等方程怎么办呢?2二次方程求解例如求解:x2-6x-12=0?s=solve('x^2-6*x-12=0')s=3+21^(1/2)3-21^(1/2)y=3+s(1)y=6+21^(1/2)s(1)-s(2)ans=2*21^(1/2)d=‘x^2+9*x-7=0’;solve(d)ans=-9/2+1/2*109^(1/2)-9/2-1/2*109^(1/2)把方程赋给一个变量,然后把它传递给solve也完全是可以的提问:上面解决了方程组求解问题,那么怎么作图呢?3符号方程绘图用ezplot(d),自动显示标题-6-4-20246-20020406080xx2+9x-7d='x^2+9*x-7';ezplot(d)d='x^2+9*x-7';ezplot(d,[-2,8])-202468050100xx2+9x-7使用ezplot注意的地方ezplot('x+3=0')???Errorusing==inlineevalErrorininlineexpression==x+3=0???Error:Theexpressiontotheleftoftheequalssignisnotavalidtargetforanassignment.Errorin==inline.fevalat34INLINE_OUT_=inlineeval(INLINE_INPUTS_,INLINE_OBJ_.inputExpr,INLINE_OBJ_.expr);Errorin==specgraph\private\ezplotfevalat54z=feval(f,x(1));Errorin==ezplotezplot1at448[y,f,loopflag]=ezplotfeval(f,x);Errorin==ezplotat148[hp,cax]=ezplot1(cax,f{1},vars,labels,args{:});-5050510xx+3ezplot('x+3')如果:-4x4,-2y2-4-2024-2-1012xx+3练习1:X2+X-=02eq='x^2+x-2^(1/2)';s=solve(eq)s=-1/2+1/2*(1+4*2^(1/2))^(1/2)-1/2-1/2*(1+4*2^(1/2))^(1/2)x=double(s(1))x=0.7900ezplot(eq)-505010203040xx2+x-21/24高阶方程求解求(x+1)2(x-2)=0eq='(x+1)^2*(x-2)';solve(eq)ans=2-1-1练习:求x4-5x3+4x2-5x+6=0,并绘制-10x10范围内的图像eq1='x^4-5*x^3+4*x^2-5*x+6';s=solve(eq1);a=s(1)a=5/4+1/12*3^(1/2)*((43*(8900+12*549093^(1/2))^(1/3)+2*(8900+12*549093^(1/2))^(2/3)+104)/(8900+12*549093^(1/2))^(1/3))^(1/2)+1/12*((258*(8900+12*549093^(1/2))^(1/3)*((43*(8900+12*549093^(1/2))^(1/3)+2*(8900+12*549093^(1/2))^(2/3)+104)/(8900+12*549093^(1/2))^(1/3))^(1/2)-6*((43*(8900+12*549093^(1/2))^(1/3)+2*(8900+12*549093^(1/2))^(2/3)+104)/(8900+12*549093^(1/2))^(1/3))^(1/2)*(8900+12*549093^(1/2))^(2/3)-312*((43*(8900+12*549093^(1/2))^(1/3)+2*(8900+12*549093^(1/2))^(2/3)+104)/(8900+12*549093^(1/2))^(1/3))^(1/2)+1530*3^(1/2)*(8900+12*549093^(1/2))^(1/3))/(8900+12*549093^(1/2))^(1/3)/((43*(8900+12*549093^(1/2))^(1/3)+2*(8900+12*549093^(1/2))^(2/3)+104)/(8900+12*549093^(1/2))^(1/3))^(1/2))^(1/2)double(s(1))ans=4.2588double(s(2))ans=1.1164double(s(3))ans=-0.1876+1.1076idouble(s(4))ans=-0.1876-1.1076i-10-505100200040006000800010000xx4-5x3+4x2-5x+6ezplot(eq1,[-1010])5解方程组解:5x+4y=3X-6y=2s=solve('5*x+4*y=3','x-6*y=2');x=s.xx=13/17s=solve('5*x+4*y=3','x-6*y=2');y=s.yy=-7/34解:w+x+4y+3z=52w+3x+y-2z=1w+2x-5y+4z=3w-3z=9eq1='w+x+4*y+3*z=5';eq2='2*w+3*x+y-2*z=1';eq3='w+2*x-5*y+4*z=3';eq4='w-3*z=9';s=solve(eq1,eq2,eq3,eq4);w=s.ww=1404/127x=s.xx=-818/127x=s.yx=-53/127x=s.zx=87/1276方程展开与合并解:(x+2)(x+3)=x2-x-6,MATLAB中用expand命令symsxexpand((x-1)*(x+4))ans=x^2+3*x-4symsxexpand(cos(x+y))ans=cos(x)*cos(7/34)+sin(x)*sin(7/34)symsxyexpand(cos(x+y))ans=cos(x)*cos(y)-sin(x)*sin(y)练习:展开sin(x-y)symsx;collect(x*(x^2-2))ans=x^3-2*xsymsxyfactor(x^2-y^2)ans=(x-y)*(x+y)symsxsimplify((x^4-81)/(x^2-9))ans=x^2+9symsxsimplify(exp(2*log(3*x)))ans=9*x^27使用指数和对数函数求解方程组cleareqeq='log10(x)-log10(x-3)=1';s=solve(eq);s(1)ans=10/3解方程组:y=32xy=5x+1s=solve('y=3^2*x','y=5^x+1')s=x:[2x1sym]y:[2x1sym]s.x(1)ans=1/9*exp(-lambertw(-1/9*log(5)*5^(1/9))+1/9*log(5))+1/9s.x(2)ans=1/9*exp(-lambertw(-1,-1/9*log(5)*5^(1/9))+1/9*log(5))+1/9a=double(s.x(1))a=0.2876a=double(s.x(2))a=1.6214eq='exp(x)+x';s=solve(eq)s=-lambertw(1)%兰帕特函数double(s)ans=-0.5671-505050100150200xexp(x)+xezplot(eq)7函数级数的表示clearxsymsxs=taylor(sin(x))s=x-1/6*x^3+1/120*x^5ezplot(s)-6-4-20246-20-10010xx-1/6x3+1/120x5这个图形很不像sin(x)图像,原因MATLAB返回只是前三项。-6-4-20246-1-0.500.51xx-1/6x3+1/120x5-...-1/121645100408832000x19s=taylor(sin(x),20)s=x-1/6*x^3+1/120*x^5-1/5040*x^7+1/362880*x^9-1/39916800*x^11+1/6227020800*x^13-1/1307674368000*x^15+1/355687428096000*x^17-1/121645100408832000*x^19ezplot(s)习题:见109页1-10
本文标题:MATLAB第五课 代数方程求解
链接地址:https://www.777doc.com/doc-3186522 .html