用matlab求解一元三次方程
来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/08/17 00:34:30
用matlab求解一元三次方程
lear all;
syms k rowl rowg sigma ug ul R m w;
rowl=745.1143;
rowg=34.7859;
sigma=0.072;
ug=7;
ul=4;
R=0.1;
m=0.1*R;
w=50;
s=solve('0.5*k*m*rowg*rowl*(ug-ul)^2-(k*sigma-(rowl-rowg)*w^2*R/k)*(0.5*k*m*rowl+rowg)=0','k');
s=simplify(s)
lear all;
syms k rowl rowg sigma ug ul R m w;
rowl=745.1143;
rowg=34.7859;
sigma=0.072;
ug=7;
ul=4;
R=0.1;
m=0.1*R;
w=50;
s=solve('0.5*k*m*rowg*rowl*(ug-ul)^2-(k*sigma-(rowl-rowg)*w^2*R/k)*(0.5*k*m*rowl+rowg)=0','k');
s=simplify(s)
![用matlab求解一元三次方程](/uploads/image/z/16350257-65-7.jpg?t=%E7%94%A8matlab%E6%B1%82%E8%A7%A3%E4%B8%80%E5%85%83%E4%B8%89%E6%AC%A1%E6%96%B9%E7%A8%8B)
因为你定义的就是符号运算啊 :“syms k rowl rowg sigma ug ul R m w;”这句就是定义了变量是符号变量,输出当然是符号,把这行去掉. 而且你用的simplify函数也是针对符号运算的.输出结果当然是符号. 接数字方程应该用ROOT函数,比如求x^3+2x^2+x-5=0 就是root([1 2 1 -5])
再问: 还是不懂,哎,愁死了、、、
再答: 这样子 如果你坚持用你的方法解,你可以这样: 1.还是运行你原来的程序(当然你得保证你写的没有语法和用法错误,我没有细看你的程序);2.运行完成你得程序以后,你再输入s.k就能得出k的值。
再问: 运行完还是符号啊。。除非把式子中的符号全改成数字才可以
再答: 你把s=simplify(s)删掉看看 我这里写了一个类似的给你参照是三元一次方程组的: >> L1='x+y+z=10'; >> L2='3*x+2*y+z=14'; >> L3='2*x+3*y-z=1'; >> g=solve(L1,L2,L3) g = x: [1x1 sym] y: [1x1 sym] z: [1x1 sym] >> g.x ans = 1 >> g.y ans = 2 >> g.z ans = 7 你体会一下你程序里有什么问题
再问: 还是不懂,哎,愁死了、、、
再答: 这样子 如果你坚持用你的方法解,你可以这样: 1.还是运行你原来的程序(当然你得保证你写的没有语法和用法错误,我没有细看你的程序);2.运行完成你得程序以后,你再输入s.k就能得出k的值。
再问: 运行完还是符号啊。。除非把式子中的符号全改成数字才可以
再答: 你把s=simplify(s)删掉看看 我这里写了一个类似的给你参照是三元一次方程组的: >> L1='x+y+z=10'; >> L2='3*x+2*y+z=14'; >> L3='2*x+3*y-z=1'; >> g=solve(L1,L2,L3) g = x: [1x1 sym] y: [1x1 sym] z: [1x1 sym] >> g.x ans = 1 >> g.y ans = 2 >> g.z ans = 7 你体会一下你程序里有什么问题