| 24小時(shí)熱門(mén)版塊排行榜 |
| 5 | 1/1 | 返回列表 |
| 查看: 2576 | 回復(fù): 11 | ||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | ||
加油大楠楠銅蟲(chóng) (小有名氣)
|
[求助]
請(qǐng)教matlab用數(shù)組給參數(shù)矩陣賦值的問(wèn)題
|
|
|
syms x y z d1 d2 d3 r l;n=1;%定義矩陣參數(shù) a=1/l*[z+r-d1 0 0;0 -0.866*y-0.5*z+r-d2 0;0 0 0.866*y-0.5*z+r-d3]; b=[x y z+r-d1;x y-0.866*r+0.866*d2 z-0.5*r+0.5*d2;x y+0.866*r-0.866*d3 z-0.5*r+0.5*d3]; c=inv(a); d=c*b;%d為我需要的比矩陣 到這一步矩陣的計(jì)算都不成問(wèn)題 d=subs(d,{'r','l','x','y','z','d1','d2','d3'},{31.8,40.2,B(n,1),B(n,2),B(n,3),B(n,4),B(n,5),B(n,6)}); %給參數(shù)賦值,其中x y z d1 d2 d3是用B矩陣的第n行對(duì)應(yīng)的列來(lái)賦值的 e = norm(d,'fro'); %求范數(shù) f(n,1)=e;%將范數(shù)記錄 n=n+1; if n==101;%B數(shù)組有100行所以到一百終止 end 最后結(jié)果f數(shù)列中只有一個(gè)數(shù) ,請(qǐng)幫忙 |
木蟲(chóng) (正式寫(xiě)手)
|
開(kāi)始那個(gè)由于你在rad中用了0,導(dǎo)致了出現(xiàn)了NAN,我照你的程序修改了下,可以出部分結(jié)果,程序如下: j=1;z=20;r=32; for l=32:34 %設(shè)定范圍 i=1; tezheng=0; for rad=1:l; %這兩個(gè)for的步長(zhǎng)可以根據(jù)運(yùn)算效率適當(dāng)放大,此處我改成了從1開(kāi)始 for thea=0:pi/10:2*pi; x=rad*cos(thea); %x y=rad*sin(thea); %y d11=1/3*(3*r+3*x+sqrt(9*l^2-9*y^2-9*z^2)); d12=1/3*(6*r-3*x+3*y*sqrt(3)+sqrt(36*l^2-27*x^2-18*x*y*sqrt(3)-9*y^2-36*z^2)); d13=1/3*(6*r-3*x-3*y*sqrt(3)+sqrt(36*l^2-27*x^2+18*x*y*sqrt(3)-9*y^2-36*z^2)); B(i,:)=[x,y,z,d11,d12,d13]; a=(1/B(i,1))*[B(i,3)+r-B(i,4) 0 0;0 -0.866*B(i,2)-0.5*B(i,3)+... r-B(i,5) 0;0 0 0.866*B(i,2)-0.5*B(i,3)+r-B(i,6)]; b=[B(i,1) B(i,2) B(i,3)+r-B(i,4);B(i,1) B(i,2)-0.866*r+... 0.866*B(i,5) B(i,3)-0.5*r+0.5*B(i,5);B(i,1) B(i,2)+... 0.866*r-0.866*B(i,6) B(i,3)-0.5*r+0.5*B(i,6)]; % c=inv(a); d=a\b; %d為雅克比矩陣 e = norm(d,'fro'); %2范數(shù) hh(i,1)=1/(eps+e);%把這個(gè)范數(shù)記錄在hh中 tezheng=hh(i,1)+tezheng;%相加對(duì)于相同l值的對(duì)應(yīng)的范數(shù) i=i+1; end end tezheng1(j,:)=tezheng/(i-1+eps);%把不同l值對(duì)應(yīng)的范數(shù)求和再除以相應(yīng)的l值 存在數(shù)組tezheng1中 j=j+1; end 根據(jù)你說(shuō)的和我理解的,我自己寫(xiě)了一個(gè),運(yùn)行速度理論上會(huì)快點(diǎn),也可以把你計(jì)算過(guò)程中的大部分?jǐn)?shù)據(jù)記錄下來(lái),程序如下: %對(duì)于l我感覺(jué)你要是后面是求和的話,沒(méi)有必要那樣,你的求和在多重循環(huán)里面,重復(fù)了很多次,我就將l設(shè)成了你程序中的最大值,這個(gè)你自己再考慮下,看著修改吧。 j=1;r=32;l = 34; %注意我把l設(shè)成了一個(gè)常數(shù) for rad = 1:34 %theta = 0:pi/10:2*pi x(rad,:) = rad*cos(0:pi/10:2*pi); %x y(rad,:) = rad*sin(0:pi/10:2*pi); %y z(rad,:) = 20*ones(size(0:pi/10:2*pi)); d11(rad,:)=1/3*(3*r+3*x(rad,:)+sqrt(9*l^2-9*y(rad,:).^2-9*z(rad,:).^2)); d12(rad,:)=1/3*(6*r-3*x(rad,:)+3*y(rad,:)*sqrt(3)+sqrt(36*l^2-... 27*x(rad,:).^2-18*x(rad,:).*y(rad,:)*sqrt(3)-9*y(rad,:).^2-36*z(rad,:).^2)); d13(rad,:)=1/3*(6*r-3*x(rad,:)-3*y(rad,:)*sqrt(3)+sqrt(36*l^2-... 27*x(rad,:).^2+18*x(rad,:).*y(rad,:)*sqrt(3)-9*y(rad,:).^2-36*z(rad,:).^2)); B(rad,1:21,1:6) = [(x(rad,:))',(y(rad,:))',(z(rad,:))',(d11(rad,:))',(d12(rad,:))',(d13(rad,:))']; n = length(B(rad,:,1)); for k = 1:n a(:,:,rad,k) = (1/B(rad,k,1)).*[B(rad,k,3)+r-B(rad,k,4) 0 0;0 -0.866.*B(rad,k,2)-0.5.*B(rad,k,3)+... r-B(rad,k,5) 0;0 0 0.866.*B(rad,k,2)-0.5.*B(rad,k,3)+r-B(rad,k,6)]; b(:,:,rad,k) = [B(rad,k,1) B(rad,k,2) B(rad,k,3)+r-B(rad,k,4);B(rad,k,1) B(rad,k,2)-0.866.*r+... 0.866.*B(rad,k,5) B(rad,k,3)-0.5.*r+0.5.*B(rad,k,5);B(rad,k,1) B(rad,k,2)+... 0.866.*r-0.866.*B(rad,k,6) B(rad,k,3)-0.5.*r+0.5.*B(rad,k,6)]; d(:,:,rad,k)=a(:,:,rad,k)\b(:,:,rad,k); %雅克比矩陣 e(rad,k) = norm(d(:,:,rad,k),'fro'); %二范數(shù) end hh = 1./e; %同你程序中的hh,只是此處為一個(gè)矩陣,即所有你的hh都在這里 end tezheng = sum((sum(hh)));%所有的hh求和 %到這里,求和都做了,所有的e,hh都有數(shù)據(jù)在里面,后面我不是很明白,你自己看著修改吧。 |
木蟲(chóng) (正式寫(xiě)手)
銅蟲(chóng) (小有名氣)
|
不好意思回復(fù)晚了 那你再幫我看看這整段程序 我把上次的程序稍微改了下,就是對(duì)于每個(gè)l,我要求他xyx為不同值的時(shí)候的范數(shù),然后相加,最后把每個(gè)l的范數(shù)和提取出來(lái),十分感謝了 我運(yùn)行總是報(bào)錯(cuò) j=1;z=20;r=32; for l=32:34 %設(shè)定范圍 i=1; tezheng=0; for rad=0:l; %這兩個(gè)for的步長(zhǎng)可以根據(jù)運(yùn)算效率適當(dāng)放大 for thea=0:pi/10:2*pi; m=rad*cos(thea); n=rad*sin(thea); d11=1/3*(3*r+3*m+sqrt(9*l^2-9*n^2-9*z^2)); d12=1/3*(6*r-3*m+3*n*sqrt(3)+sqrt(36*l^2-27*m^2-18*m*n*sqrt(3)-9*n^2-36*z^2)); d13=1/3*(6*r-3*m-3*n*sqrt(3)+sqrt(36*l^2-27*m^2+18*m*n*sqrt(3)-9*n^2-36*z^2)); B(i, =[m,n,z,d11,d12,d13];syms x1 y1 z1 d1 d2 d3 l1; a=(1/l1)*[z1+r-d1 0 0;0 -0.866*y1-0.5*z1+r-d2 0;0 0 0.866*y1-0.5*z1+r-d3]; b=[x1 y1 z1+r-d1;x1 y1-0.866*r+0.866*d2 z1-0.5*r+0.5*d2;x1 y1+0.866*r-0.866*d3 z1-0.5*r+0.5*d3]; c=inv(a); d=c*b;%d為雅克比矩陣 d=subs(d,{'l1','x1','y1','z1','d1','d2','d3'},{l,B(i,1),B(i,2),B(i,3),B(i,4),B(i,5),B(i,6)}); e = norm(d,'fro'); %2范數(shù) hh(i,1)=1/e;%把這個(gè)范數(shù)記錄在hh中 tezheng=hh(i,1)+tezheng;%相加對(duì)于相同l值的對(duì)應(yīng)的范數(shù) i=i+1; end end tezheng1(j, =tezheng/(i-1);%把不同l值對(duì)應(yīng)的范數(shù)求和再除以相應(yīng)的l值 存在數(shù)組tezheng1中j=j+1; end 錯(cuò)誤信息是 clear ??? Error using ==> mupadmex Error in MuPAD command: Out of memory Error in ==> sym.horzcat at 25 y = mupadmex('mllib::horzcat',strs{:}); Error in ==> jacobi at 16 a=(1/l1)*[z1+r-d1 0 0;0 -0.866*y1-0.5*z1+r-d2 0;0 0 0.866*y1-0.5*z1+r-d3]; >> |
木蟲(chóng) (正式寫(xiě)手)
|
我還是不是很明白你要做什么,你這個(gè)程序?qū)懙奈矣悬c(diǎn)看不懂。但有點(diǎn)建議,一:你這個(gè)應(yīng)該沒(méi)有必要用符號(hào)計(jì)算,符號(hào)計(jì)算很慢。二:你這個(gè)程序編寫(xiě)的不怎樣,基礎(chǔ)不是很好,寫(xiě)的有C語(yǔ)言的感覺(jué),可能你的想法你沒(méi)用程序表達(dá)出來(lái),要不你說(shuō)說(shuō)你要干啥吧,我看能不能幫你。話說(shuō)直了點(diǎn),望不怪。 下面是我沒(méi)用符號(hào)計(jì)算程序,速度快了很多,但是還是存在錯(cuò)誤,出不了結(jié)果,因?yàn)槲疫是沒(méi)有理解你要干啥。 j=1;z=20;r=32; for l=32:34 %設(shè)定范圍 i=1; tezheng=0; for rad=0:l; %這兩個(gè)for的步長(zhǎng)可以根據(jù)運(yùn)算效率適當(dāng)放大 for thea=0:pi/10:2*pi; m=rad*cos(thea); n=rad*sin(thea); d11=1/3*(3*r+3*m+sqrt(9*l^2-9*n^2-9*z^2)); d12=1/3*(6*r-3*m+3*n*sqrt(3)+sqrt(36*l^2-27*m^2-18*m*n*sqrt(3)-9*n^2-36*z^2)); d13=1/3*(6*r-3*m-3*n*sqrt(3)+sqrt(36*l^2-27*m^2+18*m*n*sqrt(3)-9*n^2-36*z^2)); B(i, =[m,n,z,d11,d12,d13];a=(1/B(i,1))*[B(i,3)+r-B(i,4) 0 0;0 -0.866*B(i,2)-0.5*B(i,3)+r-B(i,5) 0;0 0 0.866*B(i,2)-0.5*B(i,3)+r-B(i,6)]; b=[B(i,1) B(i,2) B(i,3)+r-B(i,4);B(i,1) B(i,2)-0.866*r+0.866*B(i,5) B(i,3)-0.5*r+0.5*B(i,5);B(i,1) B(i,2)+0.866*r-0.866*B(i,6) B(i,3)-0.5*r+0.5*B(i,6)]; % c=inv(a); d=a\b;%d為雅克比矩陣 e = norm(d,'fro'); %2范數(shù) hh(i,1)=1/e;%把這個(gè)范數(shù)記錄在hh中 tezheng=hh(i,1)+tezheng;%相加對(duì)于相同l值的對(duì)應(yīng)的范數(shù) i=i+1; end end tezheng1(j, =tezheng/(i-1+eps);%把不同l值對(duì)應(yīng)的范數(shù)求和再除以相應(yīng)的l值 存在數(shù)組tezheng1中j=j+1; end |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 化學(xué)工程085602 305分求調(diào)劑 +27 | RichLi_ 2026-03-25 | 29/1450 |
|
|---|---|---|---|---|
|
[考研] 287求調(diào)劑 +17 | land xuxu 2026-03-26 | 17/850 |
|
|
[考研] 0856調(diào)劑 +6 | 曲聽(tīng)筠 2026-03-30 | 6/300 |
|
|
[考研] 一志愿食品科學(xué)與工程083200求調(diào)劑 +4 | XQTJZ 2026-03-30 | 4/200 |
|
|
[考研] 福建理工大學(xué)材料學(xué)院先進(jìn)合金團(tuán)隊(duì)招收考研調(diào)劑學(xué)生 +3 | 大華金商都 2026-03-30 | 4/200 |
|
|
[考研] 085602化工求調(diào)劑(331分) +8 | 111@127 2026-03-30 | 8/400 |
|
|
[考研] 材料工程專(zhuān)碩求調(diào)劑 +8 | hyl3153942 2026-03-29 | 8/400 |
|
|
[考研] 332求調(diào)劑 +14 | 032500 2026-03-25 | 14/700 |
|
|
[考研] 一志愿廈門(mén)大學(xué)材料工程專(zhuān)碩354找調(diào)劑。! +5 | 貝唄鋇鋇 2026-03-30 | 5/250 |
|
|
[考研] 085600,材料與化工321分求調(diào)劑 +10 | 大饞小子 2026-03-28 | 10/500 |
|
|
[考研] 275求調(diào)劑 +15 | Micky11223 2026-03-25 | 20/1000 |
|
|
[考研] 294分080500材料科學(xué)與工程求調(diào)劑 +8 | 柳溪邊 2026-03-26 | 8/400 |
|
|
[考研] 086000生物與醫(yī)藥調(diào)劑 +5 | Feisty。 2026-03-28 | 9/450 |
|
|
[考研] 085600,專(zhuān)業(yè)課化工原理,321分求調(diào)劑 +5 | 大饞小子 2026-03-28 | 5/250 |
|
|
[考研] 299求調(diào)劑 +7 | 嗯嗯嗯嗯2 2026-03-27 | 7/350 |
|
|
[考研] 275求調(diào)劑 +10 | jjjjjjjjjjl 2026-03-27 | 10/500 |
|
|
[考研] 0856調(diào)劑 +5 | 求求讓我有書(shū)讀?/a> 2026-03-26 | 6/300 |
|
|
[考研] 298調(diào)劑 +3 | jiyingjie123 2026-03-27 | 3/150 |
|
|
[考研] 中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院-光纖傳感課題組招生-中國(guó)科學(xué)院大學(xué)、深圳理工大學(xué)聯(lián)培 +5 | YangTyu1 2026-03-26 | 5/250 |
|
|
[考研] 環(huán)境專(zhuān)碩324分求調(diào)劑推薦 +5 | 軒小寧—— 2026-03-26 | 5/250 |
|