1樓:化學工程
solve的輸出是有順序的,按照ascii順序。
clear all
t=200;
xt=1;
zt=1;
a=1;
b=1;
c=-2;
m=5.976*10^27;
g=6.67*10^(-11);
r=4.2238*10^7;
n=sqrt(m*g/r^3)
syms x0 z0 x00 z00
eq1=sqrt((8*a*c/b^2+8*a*(4*z0+2*x00/n)/b+...
3*(4*z0+2*x00/n)*n*t-2*(x0-2*z00/n))^2-...
4*((2*a/b)^2+1)*(((x0-2*z00/n)-1.5*(4*z0+2*x00/n)*n*t)^2+...
4*(4*z0+2*x00/n+c/b)^2-4*a^2));
eq2=xt-(((4*x00)/n+6*z0)*sin(n*t)+(2/n)*z00*cos(n*t)-3*(x00+2*n*z0)*t+(x0-2*z00/(n)));
eq3=zt-((z00/n)*sin(n*t)-((2*x00/n)+3*z0)*cos(n*t)+4*z0+2*x00/n);
eq4=4*z0+2*x00/n-2;
solve(eq1,eq2,eq3,eq4)%改動部分
[x0,x00,z0,z00]=solve(eq1,eq2,eq3,eq4);%改動部分
x0=double(x0)
z0=double(z0)
x00=double(x00)
z00=double(z00)
test1=subs(eq1)
test2=subs(eq2)
test3=subs(eq3)
test4=subs(eq4)
結果:n =
0.0023
ans =
x0: [2x1 sym]
x00: [2x1 sym]
z0: [2x1 sym]
z00: [2x1 sym]
x0 =
1.6206
1.1557
z0 =
1.3783
0.3856
x00 =
-0.0040
0.0005
z00 =
-0.0023
0.0023
test1 =
1.0e-006 *
0.1012
0.0000 + 0.1012i
test2 =
1.0e-015 *
-0.2220
0test3 =
1.0e-015 *
0-0.1110
test4 =
1.0e-015 *
0.4441
0 補充:
clcclear all
t=600;
xt=2;
zt=2;
a=2;
b=1;
c=-6;%(x,z)=(2,2) k=-1 2x+y-6=0
m=5.976*10^27;
g=6.67*10^(-11);
r=4.2238*10^7;
n=sqrt(m*g/r^3)
syms z0 z00 x0 x00;
eq1=b*((3*n*z0+2*x00)*sin(n*t)+z00*cos(n*t))+a*((4*x00+6*n*z0)*cos(n*t)-...
2*z00*sin(n*t)-3*(x00+2*n*z0));
eq2=xt-(((4*x00)/n+6*z0)*sin(n*t)+(2/n)*z00*cos(n*t)-3*(x00+2*n*z0)*t+(x0-2*z00/(n)));
eq3=zt-((z00/n)*sin(n*t)-((2*x00/n)+3*z0)*cos(n*t)+4*z0+2*x00/n);
[x0,x00,z00]=solve(eq1,eq2,eq3,'x0,x00,z00')
x0=vpa(x0,6)
x00=vpa(x00,6)
z00=vpa(z00,6)
結果:x0 =
.165411+.963569*z0
x00 =
-.395818e-2*z0+.479668e-2
z00 =
-.323246e-2-.150346e-2*z0
2樓:背鍋俠
因為涉及到多位小數或者不能整除的情況導致系統自動有個保留一定位數的情況從而導致結果有偏差
3樓:匿名使用者
如果想減少誤差的話就提高你資料的精確度試試,
4樓:紅沙滾滾
計算數目太大,系統省略了小數尾數,這種情況我也碰到過,換個精確點的東西算就行了。
matlab多元方程組求解結果不對
5樓:匿名使用者
你這樣做是不明智的,為什麼不能簡化呢。這樣做勢必造成計算困難,易判斷錯誤,matlab軟體有不是很特別智慧型。
將你的程式簡化如下:
clear all;
syms ra rb ua ub va vbu1=14.3,u2=514.3,v1=-15.7,v2=484.3,r1=3340,r2=3340
[ra,rb,ua,ub,va,vb]=solve(u1+ua+15,u2+ub+15,u1/r1+u2/r2-ua/ra-ub/rb,v1+va-15,v2+vb-15,v1/r1+v2/r2-va/ra-vb/rb)
簡化後,執行得到
matlab solve 解方程組,結果不對是什麼原因
6樓:
線性方程組強烈建議用矩陣運算做==
將原方程組寫成矩陣形式:[a b c]*x=[0; 0; 1]
則:x = [a b c]\[0; 0; 1]
7樓:匿名使用者
a1x1 是什麼意思
matlab solve解方程結果不對
8樓:匿名使用者
對於你的問題,最好這樣來處理。
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解方程組的結果是這樣的?怎麼回事啊?
9樓:
sym是matlab中的一種結構體型別。如果要變成數值型別需要使用double函式。
你可以使用這種方法轉換:
[x,y,z]=solve('@##$#@$%'); % 輸入你的三元方程組
x=double(x);
y=double(y);
z=double(z);
用matlab解方程組,結果不正確!向大家求教,多謝!
10樓:匿名使用者
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解方程組
把中括號改成小括號就可以了 r 6.6568421052631578947368421052632 6.6568421052631578947368421052632a 16.406842105263157894736842105263 16.4068421052631578947368421052...
解方程組,過程,解方程組的過程。
方程 中,x的係數剛好是方程1中x的係數的3倍。改變 方程 等號兩邊都乘於3 得120x 2160y 336 得方程式 使用消元法,兩者相減 2205y 2160y 340.5 33645y 4.5 y 0.1 帶入公式 40x 72 112x 1 方程 1 3 得 120x 216y 336 3 ...
解方程組謝謝
2 x 6 y 5 3 1 21 x 18 y 4.2 1 3 2 6 x 21 x 9,x 3將x 3代入 1 2 3 6 y 5 3,y 6所以解是x 3,y 6 用 換元法 設1 x a 1 y b 那麼方程組轉化為 2a 6b 5 3 21a 18b 4 得a 1 3 b 1 6然後可以算出...
解方程組,初中問題,掛10追,解方程組,初中問題,掛10追
解 由題意,x 2y 5m.1 x y 9m.2 1 2 得 y 4 3m,代入 1 x 23 3m.將x,y代入3x 2y 17解得m 51 61 前幾位都是此數,應該無錯 x 2y 5m,x y 9m x 23m 3 y 4m 3 滿足方程3x 2y 17 3 23m 3 2 4m 3 17m ...
用克拉默法則解方程組,用克拉默法則解方程組。
回答您好,很高興為您服務哦,您有任何問題可以向我諮詢哦,我會盡力為您解答的哦,如果我的答案對您有所幫助,希望可以賞我乙個贊呀,正在為您整理答案哦,請稍等一下哈 您好,可以將標題把您的題目傳送給我哦,方便我為您更好的解答哈好的,稍等一下哈 提問謝謝啦 回答希望我的答案可以幫助到您哦,期待您的贊呀!祝您...