MATLAB之方程式求根

方程式求根

1.syms x--标明变量x是一个符号变量

2.solve(y,x)--求y=0时,x的取值,默认的自变量为x
	)1.解单个方程(系数已知):
    >> syms s
    >> y = s*sin(s)-s;
    >> solve(y,s)
    ans =
        0
     pi/2
  
    >> y = cos(s).^2 - sin(s).^2
    >> solve(y)
    ans =
    pi/4
 
 
    )2.解联立方程(系数已知):
     syms x  y;
    fun1 = x - 2*y - 5;
    fun2 = x + y - 6;
    A = solve(fun1,fun2,x,y);
    A.x
    A.y

    ans = 17/3
    ans =1/3


    )3.解单个方程(系数未知):
    >> syms a b x;
    >> y = a*x.^2 - b;
    >> solve(y)

    ans =
      b^(1/2)/a^(1/2)
     -b^(1/2)/a^(1/2)


    )4.将别的参数当成自变量,在solve中设置
    >>  syms x y a b r
    z = (x - a)^2 +(y - b)^2 - r^2;
    solve(z,a)

    ans =
     x + (b + r - y)^(1/2)*(r - b + y)^(1/2)
     x - (b + r - y)^(1/2)*(r - b + y)^(1/2)

3.syms,diff--求微分
若diff(),括号里的元素为向量,那么前一个减后一个即为diff后的结果;
若diff(),括号里的元素为矩阵,那么下一行减上一行即为diff 后的结果;
若diff(),传入连续符号函数的话,就是求导
>> syms x 
>> y = 4*x^5;
>> yprime = diff(y)
yprime =20*x^4

4.subs()替换函数
    )1.将变量x替换为数值1: subs(S,x,1)
    >> syms x y z
    >> s = x^2+y;
    >> subs(s,x,1)
    ans = y + 1

    )2.将变量x替换为变量z: subs(S,x,z)
    >>  subs(s,x,z)
    ans =z^2 + y

    )3.同时将变量x和y分别替换为1和z:subs(S,{x,y},{1,z})
    >> subs(s,{x,y},{1,z})
    ans =z + 1

    )4.将单变量替换为数组:subs(S,x,[1 2;3 4])
    >> subs(s,x,[1 2;3 4]) 
    ans = 
    [ y + 1,  y + 4]
    [ y + 9, y + 16]

5.int(f,v,a,b)--求符号函数的定积分,其中,a、b分别表示定积分的下限和上限。
    )1.求x^2e^x的不定积分
    >> syms x;
    >> y = x^2*exp(x);
    >> z = int(y) 
    z =exp(x)*(x^2 - 2*x + 2)

    >> z = z-subs(z,x,0)---减去x=0的情况
    z =exp(x)*(x^2 - 2*x + 2) - 2


    )2.求(x^2-x+2)/(x+3)  下限为0,上限为10的定积分
    >> z = (x^2 - x + 1)/(x + 3);
    >> int(z,0,10)
    ans =log(302875106592253/1594323) + 10
    
6. @(x)(函数体)-- 用@设定匿名函数
   fsolve来求解
    )1.求解单个方程组
    >> f = @(x)(1.2*x+0.3+x*sin(x));
    >> fsolve(f,0)---0为初始值,随便写。
    ans = -0.3500

    )2.求解多个联立的方程组--利用x(n)来表示不同的变量
    >>f=@(x)[2*x(1)-x(2)-exp(-x(1));-x(1)+2*x(2)-exp(-x(2))];
    x0=[-5;-5];
    [x,fval]=fsolve(f,x0);

7.root() 求解多项式的解
f(x) = x^3 - 6*x^2 - 12*x + 81

>> a = [1 -6 -12 81];
>> roots(a)
ans =
   -3.5969
    5.5097
    4.0872
    
    

猜你喜欢

转载自blog.csdn.net/qq_41458842/article/details/101562566