用MATLAB解一元矩阵方程 如何用matlab解这个一元方程

\u7528matlab\u89e3\u77e9\u9635\u65b9\u7a0b

1\u3001\u52a0\u51cf\u6cd5\u7684\u547d\u4ee4\u5f88\u7b80\u5355\uff0c\u76f4\u63a5\u7528\u52a0\u6216\u8005\u51cf\u53f7\u5c31\u53ef\u4ee5\u4e86\u3002\u5982\uff1ac=a+bd=a-b\u3002

2\u3001\u4e00\u822c\u4e58\u6cd5\uff1ac=a*b,\u8981\u6c42a\u7684\u5217\u6570\u7b49\u4e8eb\u7684\u884c\u6570\u3002\u5982\u679ca,b\u662f\u4e00\u822c\u7684\u5411\u91cf\uff0c\u5982a=[1,2,3] b=[3,4,5]\u70b9\u79ef\uff1adot(a,b), \u53c9\u79ef\uff1across\uff08a,b)\u5377\u79ef\uff1aconv(a,b)\u3002

3\u3001x=a\b\u5982\u679cax=b\uff0c\u5219 x=a\b\u662f\u77e9\u9635\u65b9\u7a0b\u7684\u89e3\u3002x=b/a\u5982\u679cxa=b, \u5219x=b/a\u662f\u77e9\u9635\u65b9\u7a0b\u7684\u89e3\u3002

4\u3001\u8f6c\u7f6e\u65f6\uff0c\u77e9\u9635\u7684\u7b2c\u4e00\u884c\u53d8\u6210\u7b2c\u4e00\u5217\uff0c\u7b2c\u4e8c\u884c\u53d8\u6210\u7b2c\u4e8c\u5217\uff0c\u3002\u3002\u3002x=a\u3002

5\u3001\u6c42\u9006\uff1a\u8981\u6c42\u77e9\u9635\u4e3a\u65b9\u9635\u3002\u8fd9\u5728\u77e9\u9635\u8fd0\u7b97\u4e2d\u5f88\u5e38\u7528\u3002x=inv(a)\u3002\u8fd9\u51e0\u79cd\u65b9\u5f0f\u90fd\u53ef\u4ee5\u89e3\u77e9\u9635\u65b9\u7a0b\u3002

\u5475\u5475\uff0c\u5176\u4ed6\u91cf\u90fd\u8981\u77e5\u9053\u624d\u53ef\u4ee5\u6c42\u89e3
clc;clear%% \u521d\u59cb\u503c\u548c\u5176\u4ed6\u53c2\u6570\u968f\u4fbf\u53d6rho=1000;h=1e-5;d=0.01;B=0.05;R=100;L0=rand(1);while(1) L1=rho/(2*pi*R)*(log(L0^2/(h*d))+B); if(abs((L0-L1)/L0)<=1e-16) break; end L0=L1;endfprintf('L=%22.12f\n',L1)fprintf('\u8ba1\u7b97\u6b8b\u5dee=%20.12e\n',R-rho/(2*pi*L1)*(log(L1^2/(h*d))+B))

你把y当成自变量,画图,可以方便从y=-1:.1:1。发现x取值,最大是0.2602。

所以可以很明显,发现只能取0.1803 和 0.2067

所以你的程序只用写一个循环加判断值,即小于0.2602即可。

调用solve函数

解出0.1882847702315369927482666845352和-0.22384699275570656092042225557401

其实你这个表达式还是有问题的,比如y=0.那么你的极限是无穷大。



我使用了如下指令对以自变量为y的右式进行计算。
y=linspace(-0.01,0.01,500);
m1=(3.6515e+022).^((y./2.804).^2)-(3.6515e+022).^((y./4.348).^2);
m2=(3.6515e+022).^((y./1.604).^2)-(3.6515e+022).^((y./2.804).^2);
m3=m1./m2;
plot(m3,'DisplayName','m3','YDataSource','m3');figure(gcf)
max(m3)我将得到的x的值域,即m3,进行查看,发现最大值在x=0.2841左右.可见上述的x值有些代入方程后无解。
本来应该直接将化简的一元非线性方程利用命令求解的,只怪我不知道matlab是哪条指令。
至于y=0时候,matlab计算的结果是NaN,即不定。

syms x
syms y
X = [0.4776 0.7396 0.1803 0.2985 0.2067 0.4445];
x = '((3.6515e+022)^((y/2.804)^2)-(3.6515e+022)^((y/4.348)^2))/((3.6515e+022)^((y/1.604)^2)-(3.6515e+022)^((y/2.804)^2))';
y = [];
i = size(X);
nLen = i(2);

for i = 1 : nLen
S = solve(x, X(i));
nSLen = size(S);
if 0 == nSLen(2)
y(i) = 0;
else
y(i) = S;
end
end

%打印y
y

  • 鐢∕ATLAB瑙d竴鍏冪煩闃垫柟绋
    绛旓細浣犳妸y褰撴垚鑷彉閲忥紝鐢诲浘锛屽彲浠ユ柟渚夸粠y=-1:.1:1銆傚彂鐜皒鍙栧硷紝鏈澶ф槸0.2602銆傛墍浠ュ彲浠ュ緢鏄庢樉锛屽彂鐜板彧鑳藉彇0.1803 鍜 0.2067 鎵浠ヤ綘鐨勭▼搴忓彧鐢ㄥ啓涓涓惊鐜姞鍒ゆ柇鍊硷紝鍗冲皬浜0.2602鍗冲彲銆傝皟鐢╯olve鍑芥暟 瑙e嚭0.1882847702315369927482666845352鍜-0.22384699275570656092042225557401 鍏跺疄浣犺繖涓〃杈惧紡杩樻槸鏈夐棶棰樼殑锛...
  • 鐢╩atlab瑙d竴鍏浜屾鏂圭▼(杈撳叆鐭╅樀,杈撳嚭鐭╅樀)
    绛旓細瑙傚療鍥1锛岄暱鏂瑰舰A锛氶暱锛14-2y锛屽锛3x锛孲A闃村奖锛(14-2y)3x锛42x-6xy锛1锛夋眰鍥1涓12涓皬闀挎柟褰y闈㈢НSxy=xy锛屾牴鎹鎰忥紝12Sxy锛婼A闃村奖锛婼B闃村奖锛14x10 12xy锛42x-6xy锛婼B闃村奖锛140 SB闃村奖锛140-6xy-42x锛2锛夋牴鎹鎰忥紝SA闃村奖锛峉B闃村奖锛112銆锛3锛夛紙1锛夛紙2锛変唬鍏ワ紙3锛夊緱锛42x-6xy...
  • 濡備綍鐢╩atlab姹傝В涓鍏涓娆鏂圭▼缁?!銆
    绛旓細鍙互鐢╲pasolve姹傝В銆傚疄鐜颁唬鐮侊細for lambda=1:0.1:2 syms x qr=1.449*lambda.*(1-0.1416*lambda.^2).^3.0303;lambda1=vpasolve(1.57744*x*(1-0.1667*x.^2).^2.5==qr)end 杩愯缁撴灉 matlab瑙f柟绋缁刲nx琛ㄧず鎴恖og(x)鑰宭gx琛ㄧず鎴恖og10(x)1-exp(((log(y))/x^0.5)/(x-1))1...
  • 鐢╩atlab瑙g煩闃垫柟绋
    绛旓細1銆佸姞鍑忔硶鐨勫懡浠ゅ緢绠鍗曪紝鐩存帴鐢ㄥ姞鎴栬呭噺鍙峰氨鍙互浜銆傚锛歝=a+bd=a-b銆2銆佷竴鑸箻娉曪細c=a*b,瑕佹眰a鐨勫垪鏁扮瓑浜巄鐨勮鏁般傚鏋渁,b鏄竴鑸殑鍚戦噺锛屽a=[1,2,3] b=[3,4,5]鐐圭Н锛歞ot(a,b), 鍙夌Н锛歝ross锛坅,b)鍗风Н锛歝onv(a,b)銆3銆亁=a\b濡傛灉ax=b锛屽垯 x=a\b鏄煩闃垫柟绋嬬殑瑙c...
  • 鎬庝箞鐢∕atlab瑙f柟绋?
    绛旓細绗竴涓緥瀛愶紝姹傝В鏈甯歌鐨涓鍏浜屾鏂圭▼x^2-3*x+1=0:solve(x^2-3*x+1,x)锛岃В鍑虹殑缁撴灉鐢ㄧ簿纭殑鏍瑰紡琛ㄧず銆3銆matlab瑙鍑虹殑鏍逛笉浠呭寘鍚疄鏍癸紝涔熷寘鍚鏍癸紝渚嬪姹傝В涓夋鏂圭▼x^3+1=0:solve(x^3+1,x)鎴戜滑鐭ラ亾璇ユ柟绋嬫湁涓瀵瑰叡杞鏍癸紝matlab涔熷彲浠ヨВ鍑哄畠鐨勮В銆4銆佸浜庤秴鍑5娆★紙鍚級浠ヤ笂鐨涓...
  • 濡備綍鐢╩atlab姹涓鍏涓夋鏂圭▼缁
    绛旓細濡備綍鐢╩atlab鎬庝箞姹涓鍏涓夋鏂圭▼缁勶紵鏂规硶涓锛鐭╅樀鐭櫎娉曪紝鍗 A=[2,-3,1;1,0,3;1,-1,1]; %鏂圭▼缁勭郴鏁 B=[8;6;7]; %甯告暟椤瑰 x=A\B %鏂圭▼鐨勮В 鏂规硶浜岋細閫嗙煩闃垫硶锛屽嵆 A=[2,-3,1;1,0,3;1,-1,1]; %鏂圭▼缁勭郴鏁 B=[8;6;7]; %甯告暟椤瑰 x=inv(A)*B %鏂圭▼鐨勮В锛...
  • matlab瑙d竴鍏冩柟绋鐨勯棶棰,瀵绘濊矾銆傘傚ソ鍍忓緢闅句篃
    绛旓細鍙︿竴绉嶆柟娉曞氨鏄敤solve姹鏂圭▼鐨勬牴浜嗐俧=poly2sym(A)-4; % poly2sym鏄妸澶氶」寮忕郴鏁拌浆鎹负sym绫诲瀷鐨勫椤瑰紡锛屾敞鎰忓噺鍘4鏄浉褰撲簬鏂圭▼涓よ竟绉诲埌涓杈癸紝浣垮彸杈=0锛岀浉褰撲簬f(x)=0銆倄f=solve(f);x0=subs(xf) % 鎶妔ym绫诲瀷鐨勮В锛岃浆鎹负鏁板煎瀷銆倄0 = 1.8268 0.22495 涓嶈繃杩欐椂瑙e嚭鏉ョ殑鏍瑰緢鍙...
  • matlab姹傝В鐭╅樀鏂圭▼缁
    绛旓細棰樹富鐨勯棶棰樺彲浠ョ敤for鍙屽惊鐜鍙ュ拰solve锛堟垨vpasolve锛夊嚱鏁版眰鍑篎I(i)銆丟I(i)鐨勫笺傚疄鐜版柟娉曪細k=1;for i=1:4 for j=1:4 syms FI0銆丟I0 [FI0,GI0]=vpasolve(FI0*dGI(i,j)-GI0*dSI(i,j)==0,FI0*dSI(i,j)-GI0*dGI(i,j)==0)FI(k)=FI0,GI(k)=GI0 k=k+1;end end ...
  • matlab姹鐭╅樀鏂圭▼缁
    绛旓細浣犵殑绗竴涓鏂圭▼鏄 锛坧i0,pi1锛=(pi0,pi1)*[A00,A01;A10,R*A2]鍙栦釜杞疆锛屽氨鏄 锛坧i0,pi1锛(T)= [A00,A10;A01,R*A2]*(pi0,pi1)(T)鐩稿綋浜姹傝В绾挎ф柟绋嬬粍 Ax = 0 A = [A00 - 1,A10;A01,R*A2 - 1]x = (pi0,pi1)(T)浣犺繕鏈変竴涓害鏉熸潯浠讹紝瀵瑰惂锛1=pi0*e+pi1*inv...
  • 鐢╩atlab瑙g煩闃垫柟绋
    绛旓細鐪嬭捣鏉ヨВ娉曟槸瀵圭殑銆備綘鍙互鐢ㄥ緱鍒扮殑X杩涜楠岃瘉锛氱湅鐪婣*X*B=C鏄惁鎴愮珛銆傚鏋滈獙璇佹纭紝閭h偗瀹氬氨涓嶆槸鐭╅樀璁$畻鐨勯棶棰樹簡銆
  • 扩展阅读:一元一次方程50道题 ... matlab解矩阵方程ax b ... matlab解复杂矩阵方程 ... matlab解方程组solve ... 求解一阶方程矩阵matlab ... matlab解方程求数值解 ... matlab解一元方程组代码 ... 怎么用matlab求矩阵方程 ... matlab求解李雅普诺夫方程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网