| 8 | 1/1 | 返回列表 |
| 查看: 1085 | 回復(fù): 7 | ||
lkcool7新蟲 (初入文壇)
|
[求助]
運行matlab程序中自定義函數(shù)時出問題了,還請大神幫忙!謝謝 已有1人參與
|
|
我自定義了三個函數(shù)Y1(),Y2(),Y3(),三個函數(shù)只是內(nèi)部參數(shù)k發(fā)生變 在這里我給出Y1()代碼 function h=Y1(x) %參數(shù) k=0.1884;l=25.5;pA=1070; u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l)); a=sqrt(pA*eval(int(u^2,x,0,l))); h=u/a; 下面是主程序,目的在于繪出Y1,Y2,Y3曲線圖。 clear clc x=0.1:0.1:25.5; for m=1:1:255 y1(m)=Y1(x(m)); end for m=1:1:255 y2(m)=Y2(x(m)); end for m=1:1:255 y3(m)=Y3(x(m)); end plot(x,y1); hold on plot(x,y2); hold on plot(x,y3); hold on 運行是程序在調(diào)用Y1()時出錯,提示為 ??? Undefined function or method 'int' for input arguments of type 'double'. Error in ==> Y1 at 4 a=sqrt(pA*eval(int(u^2,x,0,l))); Error in ==> zhenxing at 6 y1(m)=Y1(x(m)); 也就是在Y1()中調(diào)用int積分函數(shù)時出錯,為什么會這樣啊?????如果我將a=sqrt(pA*eval(int(u^2,x,0,l)));提前算出,直接將這行替換為a=169.2216;卻可以運行,并最后繪制出我要的曲線。但是在我自己定義的函數(shù)中調(diào)用int()居然會出錯?求大神幫助! 謝謝 |
金蟲 (初入文壇)
新蟲 (初入文壇)
金蟲 (初入文壇)
木蟲 (正式寫手)
新蟲 (初入文壇)
|
謝謝回答,我已解決了問題,確實發(fā)覺函數(shù)Y1(x)中的u為數(shù)值而非符號表達式。然后我建立了符號變量 syms x k l 將int(u,x,0,l) 計算出來 下面是我解決問題后的代碼 function h=Y1(x) k=0.1884;l=25.5;pA=1070; u=cosh(k*x)+cos(k*x)-((sinh(k*x)+sin(k*x))*(cosh(k*l)-cos(k*l)))/(sinh(k*l)-sin(k*l)); %p為符號積分int(u^2,x,0,l)結(jié)果,為符號表達式 p=1/4*-4*cosh(k*l)*cos(k*l)^2*exp(3*k*l)-4*sin(k*l)^2*cosh(k*l)*exp(3*k*l)+4*sinh(k*l)*cos(k*l)^3*exp(2*k*l)-sin(k*l)*sinh(k*l)-cosh(k*l)*cos(k*l)+cosh(k*l)^2-4*cos(k*l)^3*exp(k*l)+8*sin(k*l)*sinh(k*l)*k*exp(2*k*l)*l+4*exp(2*k*l)*sinh(k*l)*sin(k*l)^2*cos(k*l)+4*sin(k*l)^2*cos(k*l)*exp(3*k*l)-4*sin(k*l)^2*cos(k*l)*exp(k*l)+4*cos(k*l)^3*exp(3*k*l)-exp(4*k*l)*cosh(k*l)^2+4*sinh(k*l)*cosh(k*l)*exp(3*k*l)*sin(k*l)+4*cosh(k*l)*cos(k*l)*exp(3*k*l)*sin(k*l)-4*sinh(k*l)*cosh(k*l)*sin(k*l)*exp(k*l)-4*exp(2*k*l)*cosh(k*l)^2*k*l-4*sinh(k*l)*cosh(k*l)*cos(k*l)^2*exp(2*k*l)+4*cosh(k*l)*cos(k*l)*sin(k*l)*exp(k*l)+4*exp(2*k*l)*cos(k*l)^2*k*l+exp(4*k*l)*sinh(k*l)*cosh(k*l)+exp(4*k*l)*sinh(k*l)*sin(k*l)+exp(4*k*l)*sin(k*l)*cos(k*l)-exp(4*k*l)*sin(k*l)*cosh(k*l)+4*sin(k*l)^2*cosh(k*l)*exp(k*l)-4*cosh(k*l)^2*sin(k*l)*exp(k*l)+exp(4*k*l)*cosh(k*l)*cos(k*l)-exp(4*k*l)*sinh(k*l)*cos(k*l)-4*cosh(k*l)^2*exp(3*k*l)*sin(k*l)+4*cosh(k*l)*cos(k*l)^2*exp(k*l)+4*sin(k*l)^2*sinh(k*l)*exp(k*l)+4*sin(k*l)^2*sinh(k*l)*exp(3*k*l)+sinh(k*l)*cosh(k*l)-sinh(k*l)*cos(k*l)-sin(k*l)*cosh(k*l)+sin(k*l)*cos(k*l)+2*exp(2*k*l)*sin(k*l)*cos(k*l)-2*exp(2*k*l)*sin(k*l)*cosh(k*l)+2*exp(2*k*l)*sinh(k*l)*cosh(k*l)-2*exp(2*k*l)*sinh(k*l)*cos(k*l))/k/(-cosh(k*l)^2+cos(k*l)^2+2*sin(k*l)*sinh(k*l))*exp(-2*k*l); a=sqrt(pA*p); h=u/a; |
新蟲 (正式寫手)
|
樓上說的是對的,x和u是符號變量,才能使用 int()函數(shù),你的代碼里面一是沒有進行定義,二是你把它理解成常數(shù)了。所以會報錯,找不到該函數(shù)(你把int函數(shù)用錯了) 發(fā)自小木蟲Android客戶端 |
木蟲 (正式寫手)

| 8 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 0703化學(xué)調(diào)劑 ,六級已過,有科研經(jīng)歷 +14 | 曦熙兮 2026-03-15 | 14/700 |
|
|---|---|---|---|---|
|
[考研] 材料工程專碩 348分求調(diào)劑 +3 | 冬辭. 2026-03-17 | 5/250 |
|
|
[考研] 297求調(diào)劑 +3 | 喜歡還是不甘心 2026-03-20 | 3/150 |
|
|
[考研] 求助 +5 | 夢里的無言 2026-03-21 | 6/300 |
|
|
[考研] 0805材料320求調(diào)劑 +3 | 深海物語 2026-03-20 | 3/150 |
|
|
[考研] 22 350 本科985求調(diào)劑,求老登收留 +3 | 李軼男003 2026-03-20 | 3/150 |
|
|
[考研] 265求調(diào)劑 +9 | 梁梁校校 2026-03-17 | 9/450 |
|
|
[考研] 藥學(xué)383 求調(diào)劑 +3 | 藥學(xué)chy 2026-03-15 | 5/250 |
|
|
[考研] 求調(diào)劑一志愿南京航空航天大學(xué)289分 +3 | @taotao 2026-03-19 | 3/150 |
|
|
[考研] 材料學(xué)求調(diào)劑 +4 | Stella_Yao 2026-03-20 | 4/200 |
|
|
[考研] 一志愿西安交通大學(xué) 學(xué)碩 354求調(diào)劑211或者雙一流 +3 | 我想要讀研究生 2026-03-20 | 3/150 |
|
|
[考研] 求調(diào)劑 +3 | @taotao 2026-03-20 | 3/150 |
|
|
[考研] 085601材料工程專碩求調(diào)劑 +10 | 慕寒mio 2026-03-16 | 10/500 |
|
|
[考研] 一志愿985,本科211,0817化學(xué)工程與技術(shù)319求調(diào)劑 +10 | Liwangman 2026-03-15 | 10/500 |
|
|
[考研] 材料工程專碩調(diào)劑 +5 | 204818@lcx 2026-03-17 | 6/300 |
|
|
[考研] 材料專碩306英一數(shù)二 +10 | z1z2z3879 2026-03-16 | 13/650 |
|
|
[考研] 312求調(diào)劑 +8 | 陌宸希 2026-03-16 | 9/450 |
|
|
[考博] 26博士申請 +3 | 1042136743 2026-03-17 | 3/150 |
|
|
[考研] 考研調(diào)劑 +3 | 淇ya_~ 2026-03-17 | 5/250 |
|
|
[考研] 327求調(diào)劑 +6 | 拾光任染 2026-03-15 | 11/550 |
|