matlab复数方程的根,matlab解一元三次方程,得到的都是复数根。
對于你昨天的那個方程,是典型的非線性方程,我修改了程序,用fsolve函數來解,程序在下面。先新建一個m文件,再把以下全部程序直接復制進m文件中,運行即可,不要在主窗口中運行,用m文件來寫程序,比直接在主窗口中操作方便,也算是一種好習慣吧。
由計算結果可知,解更符合實際,而且沒有出現虛數。
function solution_nonl
clear all;clc
global aa bb tt pp
%-------------根據計算結果,修改迭代初值------------------------------------
xx0=[1];??%迭代初值,如果計算結果不符合實際,可修改,一般由pV=nRT給出初始的V,這里我直接取1了
t =[350.1500 348.9500 347.1500 345.4500 342.3500 340.7500 338.9500];
p =[101.3300 101.3300 101.3300 101.3300 101.3300 101.3300 101.3300 101.3300];
a =[0.9098 0.9365 0.9763 1.0223 1.0549 1.0968 1.1340 1.1773];
b =[0.0573 0.0565 0.0551 0.0535 0.0523 0.0507 0.0491 0.0470];
v=[];
for n=1:7
aa=a(n);
bb=b(n);
tt=t(n);
pp=p(n);
x(n)=fsolve(@nonlin,xx0);
end
disp(x)
function f= nonlin(x)
global aa bb tt pp
f=8.314*tt/(x-bb)-aa/(x*(x+bb))-pp;
計算結果:
28.7864? ?28.6871? ?28.5380? ?28.3969? ?28.1413? ?28.0084? ?27.8591
總結
以上是生活随笔為你收集整理的matlab复数方程的根,matlab解一元三次方程,得到的都是复数根。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php html 文本域,html文本域
- 下一篇: 为什么用 php widget,Thin