انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطا در رسم تابع uبرحسب z,y (خطای cannot be complex) (متلب - MATLAB)

خطا در رسم تابع uبرحسب z,y (خطای cannot be complex) (متلب - MATLAB)

#1
سلام
یک تابع دارم uبرحسبz,y
این تابع از یک سری ساخته شده
تابع u را متلب میدهد ولی موقع رسم برحسب z,y خطا میدهد(Error using mesh (line 76)

X, Y, Z, and C cannot be complex)
اینم کد:


کد:
clc
clear all
a=6;
b=3;
m=0.001;
q=0;
syms y z
for n=1:5
   w=(2*n-1)*pi/2;
   q=q+4*((-1)^n*cosh(w*y/b)*cos(w*z/b)/((w^3)*cosh(w*a/b)));
end
[y,z]=meshgrid(-6:0.5:6,-6:0.5:6);
u=9*(1-(z.^2)/(b^2)+q)/(2*m);
mesh(y,z,u)
   
پاسخ

خطا در رسم تابع uبرحسب z,y (خطای cannot be complex) (متلب - MATLAB)

#2
سلام.
هنگام رسم شکل، چون مقادیر به صورت اعداد مختلط (Complex) هستند، بنابراین خطا می دهد.
پس باید بررسی کنید که کدام حالت زیر رخ داده است :

1- بخشی از کدها غلط بوده و باعث شده که اعداد، دارای بخش موهومی (Imaginary) بوده و در نتیجه عدد مختلط (Complex) باشند

2- محاسبات صحیح است و نتایج به صورت اعداد مختلط (Complex) می باشند و فقط برای رسم، باید مقادیر مناسب برای رسم را انتخاب کنیم، یعنی یکی از موارد زیر (یا هر سه، ولی در شکل های جداگانه) :

الف- رسم بخش حقیقی (Real) اعداد (با تابع real در متلب (MATLAB) - کلید شماره 37)
ب- رسم بخش موهومی (Imaginary) اعداد (با تابع imag در متلب (MATLAB) - کلید شماره 37)
ج- زسم اندازه اعداد (با تابع abs در متلب (MATLAB))

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط pouriya28111372

خطا در رسم تابع uبرحسب z,y (خطای cannot be complex) (متلب - MATLAB)

#3
(۱۳۹۷/۰۸/۰۴, ۱۰:۴۳ ب.ظ)pouriya28111372 نوشته: سلام
یک تابع دارم uبرحسبz,y
این تابع از یک سری ساخته شده
تابع u را متلب میدهد ولی موقع رسم برحسب z,y خطا میدهد(Error using mesh (line 76)

X, Y, Z, and C cannot be complex)
اینم کد:


کد:
clc
clear all
a=6;
b=3;
m=0.001;
q=0;
syms y z
for n=1:5
   w=(2*n-1)*pi/2;
   q=q+4*((-1)^n*cosh(w*y/b)*cos(w*z/b)/((w^3)*cosh(w*a/b)));
end
[y,z]=meshgrid(-6:0.5:6,-6:0.5:6);
u=9*(1-(z.^2)/(b^2)+q)/(2*m);
mesh(y,z,u)
   

مشکل در نحوه تعریف داده هاتون هست، شما در نهایت یک q دارید , مقدار u  شما به صورت سیمبلیک شده. شاید بهتر باشه همون اول x , y عدد بدید و از حلقه های تو در تو استفاده کنید.
پاسخ
 سپاس شده توسط pouriya28111372 ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان