怎样用MATLAB求解高次方程
发布网友
发布时间:2022-05-26 14:26
我来回答
共2个回答
热心网友
时间:2023-10-21 23:19
%
最后一句改为
i0=solve(Ttq*ig*et/r*i0-Ff-Fw);
%
因为你前面定义过syms
i0,所以solve里不用引号,可以直接把各个参数代入,是一个自变量为i0的sym类型的表达式,不加引号的话也不能加=号,方程两边要挪到一边。
%如果你不定义syms
i0,那也可以直接用
i0=solve('Ttq*ig*et/r*i0-Ff-Fw=0'
,
'i0')
%
此时因为多个未知数,所以必须指定所求的i0,结果用其他参数表示,所以要换成数值,还要加一句
x=subs(i0)
%这句的意思就是用现有变量内容替换sym类型里的变量名
热心网友
时间:2023-10-21 23:20
按照多项式的性质,在相邻的根确定的相邻的区间中
多项式的值应该是正负交替的,知道第一个区间的
正负情况,后面的区间的正负也就确定了
有重根的情况比较特殊也是可以根据根的重数判断函数在两边的正负情况
如果是用matlab计算
你获得了所有的根x1
x2
x3
.
也知道函数的(其实就是多项式)的形式
那么完全可以在区间中取值,直接计算函数值获得正负情况
在两个相邻根之间的区间中,函数是不会变符号的
你可以先讲根按从小到达的顺序排列x1
x2
x3.
然后计算每个区间中点(f[(x1+x2)/2],f[(x2+x3)/2],f[(x3+x4)/2]的函数符号
也就代表了每个区间的符号了