matlab解方程後結果不對,matlab solve解方程結果不對

時間 2022-08-31 19:55:05

1樓:匿名使用者

你的**沒有問題。錯就錯在,提取變數計算值

位置不對。依次的順序是x: ,x1,x2,x3,y3,z1,z2

求解結果

驗證結果

matlab solve解方程結果不對

2樓:匿名使用者

對於你的問題,最好這樣來處理。

r=1.9;d=0.175;ac=11.5;bc=6.5;l=11.66;cc=pi;

syms aa real

aa=solve((bc*(1-cos(aa)))^2+(ac+r*cos(cc)-bc*sin(aa))^2+(r*sin(cc))^2-l^2);

vpa(aa)

ans =

-0.32170999022918155334949100099991

2.2729436161889969111963218680334將得到的兩個解回帶驗算,結果正確,等於0

matlab solve 解方程組,結果不對是什麼原因

3樓:

線性方程組強烈建議用矩陣運算做==

將原方程組寫成矩陣形式:[a b c]*x=[0; 0; 1]

則:x = [a b c]\[0; 0; 1]

4樓:匿名使用者

a1x1 是什麼意思

matlab解方程結果不對

5樓:匿名使用者

x= .23140644928918218153101060547769-.67491068262896175490672890157873*i

.20016682566539328529481487387737e-1-.36668625092020700013944479932083*i

.74433216548435660974638651706013+.71122684333944127690630086595804*i

.23140644928918218153101060547769+.67491068262896175490672890157873*i

1.1672434326844091586008062438999+.30480902934830614740946765663994*i

1.1672434326844091586008062438999-.30480902934830614740946765663994*i

.74433216548435660974638651706013-.71122684333944127690630086595804*i

.97150888215238704004539352707680e-1+.65494401824048649803101449105303e-1*i

.97150888215238704004539352707680e-1-.65494401824048649803101449105303e-1*i

.81427195940000123190090181518741e-1+.11074783070017496124927165466808*i

.20016682566539328529481487387737e-1+.36668625092020700013944479932083*i

.50414983100005981616952291587631e-1-.18567195971423744977099629217465*i

.50414983100005981616952291587631e-1+.18567195971423744977099629217465*i

.81427195940000123190090181518741e-1-.11074783070017496124927165466808*i

6樓:

沒錯吧,帶回之後是0啊

matlab解方程的結果帶回原方程結果不對 30

7樓:

哦 可能是因為matlab預設的解是弧度,不是角度值

matlab解方程不對

8樓:匿名使用者

1、什麼版本會求出x=60、pa=50?我這裡求出來的值和你不一樣啊。

2、最主要的問題出在函式返回值的順序:solve函式返回多個引數時,順序並不是你隨便指定的(也不會根據你呼叫使用的符號智慧型確定),而是按照所求解方程中未知數的字母順序返回的。

也就是說,函式的正確呼叫方式是:

>> [pa,pb,t,x]=solve('pa*x=36','pb*(1-x)=24','log10(pa)=6.95719-1424.225/(213.

206+t)','log10(pb)=6.95711-1445.58/(209.

43+t)')

pa =

69.752109271883678958907343641999

pb =

49.598400178199613662326692028202

t =65.309313103378276988388174692156

x =.51611342475217750503137888312624

在求解方程組時,為了避免返回值的順序搞錯,比較可取的方式是只返回乙個變數,此時的返回值為結構體:

>> sol=solve('pa*x=36','pb*(1-x)=24','log10(pa)=6.95719-1424.225/(213.

206+t)','log10(pb)=6.95711-1445.58/(209.

43+t)')

sol =

pa: [1x1 sym]

pb: [1x1 sym]

t: [1x1 sym]

x: [1x1 sym]

然後再用sol.pa等符號引用求解結果即可。

用matlab解方程組,結果不正確!向大家求教,多謝!

9樓:匿名使用者

clc;clear

syms f d;

f1 = d+1-d/f-0.6;

f2 = 0.34*f/(0.34+f)+0.6-2*d;

[d0,f0] = solve(f1,f2,'d','f');

fprintf('解為\nd1=%s\nf1=%s\n或

% 校驗誤差,可以知道誤差計算為0

err1 = simplify((subs(f1,[d,f],([d0(1,1),f0(1,1)]))));

err2 = simplify((subs(f2,[d,f],([d0(1,1),f0(1,1)]))));

err3 = simplify((subs(f1,[d,f],([d0(2,1),f0(2,1)]))));

err4 = simplify((subs(f2,[d,f],([d0(2,1),f0(2,1)]))));

fprintf('解的計算誤差分別為\n%s\n%s\n%s\n%s\n',err1,err2,err3,err4)

結果為解為

d1=109/670 - 25549^(1/2)/670

f1=2/15 - 25549^(1/2)/435

或d2=25549^(1/2)/670 + 109/670

f2=25549^(1/2)/435 + 2/15

解的計算誤差分別為0000

matlab解方程組的結果是這樣的?怎麼回事啊?

10樓:

sym是matlab中的一種結構體型別。如果要變成數值型別需要使用double函式。

你可以使用這種方法轉換:

[x,y,z]=solve('@##$#@$%'); % 輸入你的三元方程組

x=double(x);

y=double(y);

z=double(z);

求問這個matlab解方程組**錯了。。。執行之後不提示錯誤,但是就是沒有辦法執行處結果啊。 5

11樓:匿名使用者

我個暈 這麼長。。。檢查一下,那個地方是不是用了漢字(非英文)的空格之類的,

12樓:匿名使用者

執行的時間是長些,提示裡說,「沒有顯函式解。」

解方程怎麼解,解方程。 怎麼解方程?

金果 步驟 1 有分母先去分母。2 有括號就去括號。3 需要移項就進行移項。4 合併同類項。5 係數化為1求得未知數的值。6 開頭要寫 解 例如 3 x 18 解 x 18 3 x 15 4x 2 79 x 192 解 4x 158 2x 192 4x 2x 158 192 2x 158 192 2...

解方程,速回,解方程,速回!!!

1 原式可化為 根號5 根號3 x 根號3 根號5,x 根號5 根號3 根號5 根號3 即x 4 根號15 2 原方程可化為 根號3 x 2根號2 y 1 a 2根號3 x 根號2y 8 b 由 b 2 a 即2根號3 x 根號2 y 2根號3 x 4根號2 y 8 得出x 根號3,y 根號2 3 ...

如何解方程,怎麼解方程??

使方程左右兩邊相等的未知數的值,叫做方程的解。求方程的解的過程叫做解方程。必須含有未知數等式的等式才叫方程。解。求方程的解的過程叫做解方程。必須含有未知數等式的等式才叫方程。等式不一定是方程,方程一定是等式。估演算法 剛學解方程時的入解方程門方法。直接估計方程的解,然後代入原方程驗證。應用等式的性質...