1樓:匿名使用者
>> syms a1 a2 c1 c2
%以下的值你自己改一下
aa1=1;
cc1=2;
aa2=3;
cc2=4;
[x5,y5]=solve('y5=a1*x5+c1','y5=a2*x5+c2','x5','y5');
xx5=subs(subs(subs(subs(x5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)
yy5=subs(subs(subs(subs(y5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)
%%%%%subs(表示式,變數,變數的值),就是將表示式裡面的變數,用變數的值代進去。
2樓:匿名使用者
a1,c1,a2,c2的數值都知道,設為以下方程>> [x5,y5]=solve('y5=1*x5+1','y5=2*x5+sqrt(3)','x5','y5')
x5 =
1-3^(1/2)
y5 =
2-3^(1/2)
>> x=eval(x5);y=eval(y5);
>> [x,y]
ans =
-0.7321 0.2679
>>
3樓:開心金牛座
直接把幾個已知引數放進solve裡就行了啊
比如a1=2,就在輸a1的地方輸2
4樓:中醫傳承
fun=@(x,y)y.*log10(y)-x建立關於x,y的匿名函式
log10(x)由於matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有log2,但是沒有log3等哦
vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt(2)',10)將sqrt(2)表示10位精度的小數
fzero是matlab求解一元函式零點的內建函式
fsolve是matlab中求解方程組解(可以求解複數)的內建函式,功能強於fzero
fval是返回fun(x)的值,也就是說fzero和fsolve返回方程的解x,那麼此時的fun(x)就是fval
這個方法比較多 可以數值也可以解析求解
1.解析求解
>> solve('y*log10(y)=3','y')
ans =
3*log(10)/lambertw(3*log(10))
>> vpa(ans)
ans =
4.5555357051951280236911974082484
2.數值解法這個可以使用fsolve和fzero,前者的功能更加強大,但是對於這個問題fzero就可以了
>>x=3;
>>fun=@(y)y*log10(y)-x;
%使用fsolve
>> [x,fval]=fsolve(fun,rand)
optimization terminated: first-order optimality is less than options.tolfun.
x =4.5555
fval =
3.9620e-008
%使用fzero
>> [x,fval]=fzero(fun,5)
x =4.5555
fval =
-8.8818e-016
怎麼用matlab程式設計求解這個方程的數值解啊
5樓:匿名使用者
fun=@(x,y)y.*log10(y)-x建立關於x,y的匿名函式
log10(x)由於matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有log2,但是沒有log3等哦
vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt(2)',10)將sqrt(2)表示10位精度的小數
fzero是matlab求解一元函式零點的內建函式
fsolve是matlab中求解方程組解(可以求解複數)的內建函式,功能強於fzero
fval是返回fun(x)的值,也就是說fzero和fsolve返回方程的解x,那麼此時的fun(x)就是fval
這個方法比較多 可以數值也可以解析求解
1.解析求解
>> solve('y*log10(y)=3','y')
ans =
3*log(10)/lambertw(3*log(10))
>> vpa(ans)
ans =
4.5555357051951280236911974082484
2.數值解法這個可以使用fsolve和fzero,前者的功能更加強大,但是對於這個問題fzero就可以了
>>x=3;
>>fun=@(y)y*log10(y)-x;
%使用fsolve
>> [x,fval]=fsolve(fun,rand)
optimization terminated: first-order optimality is less than options.tolfun.
x =4.5555
fval =
3.9620e-008
%使用fzero
>> [x,fval]=fzero(fun,5)
x =4.5555
fval =
-8.8818e-016
6樓:匿名使用者
f=@(x,y)y.*log10(y)-x;
x=3;
y=fzero(@(y)f(3,y),10)
用matlab 解這個方程的數值解,急
7樓:匿名使用者
x=fsolve(fun,x0)求解fun(x)=0的解,x0是初值,fun是函式,x就是解
比如解方你的方程可定義一個函式
function y=f(x)
y=(ln(0.2-x)-ln(0.04-x))/(ln(0.2-x)-ln(0.013-x))-0.55
再到主介面
x=fsolve(@f,0) 0是初始值也可直接使用 fsolve(@(x)([(log(0.2-x)-log(0.04-x))/(log(0.
2-x)-log(0.013-x))-0.55]),0)
8樓:匿名使用者
新建script,輸入以下命令:
clcf=inline('(log(0.2-x)-log(0.04-x))/(log(0.2-x)-log(0.013-x))-0.55');
x=fsolve(f,x0)
修改f後面的0.55就可以計算多組
x0是初值,就是你估計的x會在哪個值左右,這是必須要的x=0.004
如何用matlab求方程的數值解
9樓:勇寒開強
fun=@(x,y)y.*log10(y)-x建立關於x,y的匿名函式
log10(x)由於matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有log2,但是沒有log3等哦
vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt
怎麼用matlab解含有字母系數的方程組的解,舉個簡單例子
10樓:大野瘦子
用法以這個為例:
x+a*y=10
x-b*y=1
其中x,y為變數,a,b為字母系數.
只要在matlab中輸入
syms x,y,a,b
[x y]=solve('x+a*y=10','x-b*y=1','x','y')
即可求出解
x =(a + 10*b)/(a + b)
y =9/(a + b)
對於函式solve的具體用法,可以通過輸入help solve來學習。
matlab中方程求解的基本命令
1.roots(p) %求多項式的根,其中p是多項式向量。
例求x3-x2+x-1=0的根
解:>>roots([1,-1,1,-1])
注: [1,-1,1,-1]在matlab中表示多項式 x3-x2+x-1
2.solve(fun) %求方程fun=0的符號解,如果不能求得精確的符號解,可以計算可變精度的數值解
例:用solve求方程x9+x8+1=0的根
解:>>solve(『x^9+x^8+1』)
給出了方程的數值解(32位有效數字的符號量)
3.solve(fun,var) %對指定變數var求代數方程fun=0的符號解。
例:解方程 ax2+bx2+c=0
解:>>syms a b c x;
>>f=a*x^2+b*x+c;
>>solve(f)
如果不指明變數,系統預設為x,也可指定自變數,比如指定b為自變數
>>symsa b c x;
>> f=a*x^2+b*x+c;
>>solve(f,b)
4.fsolve(fun,x0) %求非線性方程fun=0在估計值x0附近的近似解。
例:用fsolve求方程x=e-x在0附近的根
解:>>fsolve(『x-exp(-x)』,0)
5.fzero(fun,x0) %求函式fun在x0附近的零點
例:求方程x-10x+2=0在x0=0.5附近的根
解:>>fzero(『x-10^x+2』,0.5)
11樓:匿名使用者
舉個簡單例子,解方程組
x+a*y=10
x-b*y=1
其中x,y為變數,a,b為字母系數。
只要在matlab中輸入
syms x,y,a,b
[x y]=solve('x+a*y=10','x-b*y=1','x','y')
即可求出解
x =(a + 10*b)/(a + b)y =9/(a + b)
對於函式solve的具體用法,可以通過輸入help solve來學習。
希望我的回答能夠解決您的疑問,謝謝。
12樓:匿名使用者
例:解方程組a*x+2*y=4,4*x+b*y=7matlab**:syms a b x y;
z=solve('a*x+2*y=4','4*x+b*y=7')即可。
matlab解一元超越方程,MATLAB求解一元超越方程,,求程式碼(混凝土破壞準則的內容)
缺少運算子 以及引數輸入格式有點問題 solve x 1 12 2.24 10 7 exp 5600 15 11 x 1 1 x ans 19.906557209304298701452077340886 10.326236962569359920664632589731 i solve x 1 1...
二元二階微分方程組求數值解的matlab程式
花開勿敗的雨季 方程或者初始條件有問題,請認真核實。原因 如果按照現在的初始條件,則第一個微分方程各項為0,方程不起作用。而且就演算法而言,二階 最高階 導數的係數為0,會導致數值積分演算法無法啟動。參考 大致如下 12 3456 78910 1112 1314 1516 17m 1 g 9.8 k...
MATLAB解三元二次方程,用matlab求解一個三元二次方程組
樓主這個方程組有特殊性,把三個方程的平方後可以吧所有的平方項都約掉,變成一個三元一次的方程組。若p1 p2 p3那麼,樓主的問題實際是找這三個點的圓心,只有一個解。所以肯定是三元一次的,因為這樣的圓心只有一個。1,2,3點不在同一直線上 當然如果p1 p2 p3也可以解,並且也只有一個解,不過就不是...