کلیدستان

نسخه‌ی کامل: دلیل ارور به دلیل تغییر در محدوده رسم؟
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام یه برنامه نوشتم که هنگام رسم محدوده (3،3-) داشت در مرحله بعد برای بررسی جوابها باید حدود رو عوض کنم و (6،-6)بذارم ولی ارور میده چرا؟میگه باید هم طول باشن!!!!!
یه سوال دیگه هم دارم که آیا درست نرمالیزه شده؟
ممنون.

کد:
clear all; close all; clc; Er=Er_x; Q=30000;L=980/3.495; teta=input('pleas Enter teta(Degree)=');%'تتا زاويه اي است که دوقطبي الکتريکي بسته به مکانش با محور x ميسازد' alfa=input('pleas Enter alfa(Degree)=');%زاويه بين ميدان الکتريکي و دوقطبي% d=1.6*10^-16*3.6;%اندازه دوقطبي الکتريکي% d_x=d*cos(teta*pi/180);%مقدار دوقطبي الکتريکي d در راستاي محور x% d_y=d*sin(teta*pi/180);%مقدار مولفه yدو قطبي در راستاي محور y% G=(d.*Er*cos(alfa)).^2; Nor = G - min( G(:) ); DEr2 = Nor / max( Nor(:) );%حاصل ضرب ميدان الکتريکي در دوقطبي الکتريکي که %نرماليزه شده است% Er_max=max(max(Er)); S=Er_max/2; [row_position,column_position]=find(S==Er_max/2); X=-3+(row_position-1)*0.1; Y=-3+(column_position-1)*0.1; Veff=1/2*pi*(X^2+Y^2)*L; Er_max=max(max(Er)); F=(3*Q*L^3/(4*pi^2*Veff)).*(abs(Er).^2/abs(Er_max)^2).*DEr2*10^-6; x=-3:0.1:3;y=-3:0.1:3; subplot(2,1,1) pcolor(Er) xlabel('X(A^ ^0)') ylabel('y(A^ ^0)') subplot(2,1,2) plot(x,F) xlabel('X(nm)') ylabel('Fp')

زیربرنامه برنامه فعلی.

کد:
clear all; clc; x=-3:0.1:3;y=-3:0.1:3; H0=G_Hermite0(x); H1=G_Hermite1(x); H2=G_Hermite2(x); H3=G_Hermite3(x); [x,y]=meshgrid(-3:0.1:3); n=input('enter n='); m=input('enter m='); if n==0 ;A=G_Hermite0(2.*x); elseif n==1; A=G_Hermite1(2.*x); elseif n==2; A=G_Hermite2(2.*x); elseif n==3; A=G_Hermite3(2.*x); end if m==0; B=G_Hermite0(2.*y); elseif m==1; B=G_Hermite1(2.*y); elseif m==2; B=G_Hermite2(2.*y); elseif m==3; B=G_Hermite3(2.*y); end HH=A.*B.*exp(-2*x.^2-2*y.^2); subplot(2,1,1) surf(x,y,HH) subplot(2,1,2) pcolor(x,y,HH)

شرمنده ولی خود این باز چهار تا کد داره.

کد:
function H0=G_Hermite0(x); H0=1; end

کد:
function H1=G_Hermite1(x); H1=2.*x; end

کد:
function H2=G_Hermite2(x); H2=4.*x.^2-2; end

کد:
function H3=G_Hermite3(x); H3=8.*x.^3-12.*x; end

خیلی خیلی ممنون.
سلام.
کدهاتون به هم ریخته.
بهتر است که کل فایل ها (m-file های حاوی همین کدها) را به صورت یک فایل zip پیوست ارسال کنید (یک ارسال جدید بسازید و فایل را پیوست کنید).

فایل ها رو که فرستاده بودید پیوست همان اولین ارسالتان کردم.
طبق گفته شما، فایل Fp.m را به عنوان فایل اصلی اجرا کردم که 4 تا ورودی می خواست. من مقادیر ورودی ها رو به صورت زیر وارد کردم :

کد:
enter n=2
enter m=2
pleas Enter teta(Degree)=30
pleas Enter alfa(Degree)=30

و نتیجه به صورت شکل زیر رسم شد :


و هیچ پیام خطایی هم نمایش داده نشد.
من حدس می زنم که ورودی ها را اشتباه انتخاب کرده اید. 
بنابراین توصیه می کنم که ورودی ها را با دقت انتخاب کنید.

در مورد نرمالیزه بودن، نمی توانم نظری بدهم.

در ضمن، در m-file ، توضیحات را به صورت فارسی ننویسید، زیرا بعد که فایل را ببندید و دوباره باز کنید، همه کاراکترها به اشتباه ذخیره شده اند (توضیحات را از دست می دهید).

ممنون. ببخشید انگار در ارسال مطالب زیادی ناشیم.
بله کاملا نتیجه درستیه.این برنامه یک پدیده فیزیکی رو نشون میده.ما قصد داریم ببینیم آیا تغییر حدود که در اینجا (3،3-) است. به محدوده (6،6-) تاثیری در نتایج داره یا نه؟وقتی در برنامه آخر محدوده رو از (3،3-) به محدوده (6،6-) تغییر میدم ارور میده. البته
محدوده اصلی و مورد نظر ما محدودۀ x در برنامه U0 است که در واقع قطر یک استوانه است که قصد داریم ببینیم آیا تغییرش در مقدار نهایی فاکتور پرسل (یعنی همان برنامه نهایی Fp) تاثیر دارد یا نه؟گیج شدم که اصلا کجا باید این محدوده رو عوض کنم؟!!!!؟؟؟؟؟؟؟؟؟؟ فک میکنم تغییرش در برنامه آخر تاثیری در چیزی که ما میخوایم نداشته باشه چون قسمت اخر فقط حدود رسم شکل رو مشخص میکنه درسته؟؟؟؟.بازم ممنون
 

 
سلام لطفا یکی جواب منو بده.خیلی مهمه. جواب سوال در پست قبل رو.
اگر چند تا mفایل داشته باشیم آیا تغییر حدود رسم در برنامه اصلی تاثیری در کل برنامه داره؟ یا فقط محدوده رسم شکل رو تغییر میده؟
سلام ببخشید جواب سوال قبلمو نمیدین؟